En términos de base de datos, una clave externa es una columna que está vinculada al campo de clave principal de otra tabla en una relación entre dos tablas.
Una clave externa es un tipo de restricción, por lo que si desea crear una clave externa en SQL Server, deberá crear una restricción de clave externa.
Este artículo demuestra cómo crear una restricción de clave externa en SQL Server mediante Transact-SQL.
Ejemplo
La forma más fácil de demostrar esto es con un ejemplo. En este ejemplo, usamos T-SQL para crear una restricción de clave externa usando ALTER TABLE
declaración:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
Esto crea una relación entre dos tablas (los Albums
y los Artists)
mesa). Hacemos esto creando una restricción de clave externa en Albums
mesa. Especificamos que Albums.ArtistId
la columna es una clave externa para Artists.ArtistId
columna.
Obviamente, esto supone que las dos tablas existen. Si no lo hicieran, obtendríamos un error.
También usamos GO
que en realidad no es parte de T-SQL. Varias utilidades lo reconocen para señalar el final de un lote de instrucciones T-SQL.
Comprueba el resultado
Puede verificar el resultado ejecutando el siguiente script:
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
Esto enumera las claves foráneas en Music
base de datos. Cambie el nombre de la base de datos para adaptarlo.
Si su base de datos tiene demasiadas claves foráneas, siempre puede limitarla con WHERE
cláusula a la clave externa específica que le interesa. También puede usar el carácter comodín (*
) si necesita que se devuelvan todas las columnas.