Esta pregunta es más o menos similar a this one, pero para SQL Server 2005:clave externa que hace referencia una clave principal 2 columnas en SQL Server
tengo 2 tablas en mi base de datos:
--'#' denotes the primary key
[Libraries]
#ID #Application Name
1 MyApp Title 1
2 MyApp Title 2
[Content]
#ID Application LibraryID Content
10 MyApp 1 xxx
11 MyApp 1 yyy
(la la base de datos es, obviamente, mucho más compleja y tener esta doble clave tiene sentido)
Cada biblioteca se identifica por su ID único y nombre de aplicación. Estoy tratando de asegurarme de que cada contenido haga referencia de forma adecuada a una biblioteca existente.
Al crear la restricción (usando el Asistente) como
Primary key table Foreign key table
[Libraries] [Content]
ID ---> LibraryID
Application ---> Application
tengo el siguiente error:
The columns in table 'Libraries' do not match an existing primary key or UNIQUE constraint
¿Tiene alguna idea de lo que está pasando? y si es posible usar SQL Server? (No puedo modificar la tabla [Library] en absoluto)
¡Muchas gracias por su ayuda!
Estaba usando la IU directamente en ese punto, pero el uso de la sintaxis genera el siguiente error: "No hay claves principales o candidatas en la tabla referenciada 'dbo.Libraries' que coincidan con la lista de columnas de referencia en la clave externa. .. – Luk
Bueno, en ese caso, el par (Id, Aplicación) ** no ** es la clave primaria en la tabla de Bibliotecas. Solo se puede hacer referencia a la clave principal en una tabla padre - o una columna (o conjunto de columnas) que forman parte de un índice único. Consulte la tabla 'Bibliotecas' –
Esa fue mi primera idea también, pero el script SQL especifica ' CREATE TABLE [Libraries] ('...' CONSTRAINT [PK_sf_Libraries] CLAVE PRIMARIA CLUSTERED ([Aplicación] ASC, [ID] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) EN [PRIMARY] '... (lo siento por dum ping todo el SQL aquí) – Luk