sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo agregar una restricción de clave externa a una tabla existente en SQL Server (T-SQL)

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.