Modificar relaciones de claves externas
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance
Puede modificar el lado de clave externa de una relación en SQL Server mediante SQL Server Management Studio o Transact-SQL. Modificar los cambios de clave externa de una tabla cuyas columnas están relacionadas con las columnas de la tabla de clave principal.
En este tema
Antes de empezar:
Para modificar una clave externa con:
Antes de empezar
Limitaciones y restricciones
La nueva columna de clave externa debe tener el mismo tipo de datos y el mismo tamaño que la columna de clave principal con la que está relacionada, con las siguientes excepciones:
Se puede asociar una columna de tipo char o sysname a una columna de tipo varchar .
Se puede asociar una columna de tipo binary a una columna de tipo varbinary .
Se puede asociar un tipo de datos de alias a su tipo básico.
Seguridad
Permisos
Requiere el permiso ALTER en la tabla.
Uso de SQL Server Management Studio
Para modificar una clave externa
En el Explorador de objetos, expanda la tabla con la clave externa y luego expanda Claves.
Haga clic con el botón derecho en la clave externa que se va a modificar y seleccione Modificar.
En el cuadro de diálogo Relaciones de clave externa , puede realizar las siguientes modificaciones.
Relación seleccionada
Muestra las relaciones existentes. Seleccione una relación para mostrar sus propiedades en la cuadrícula situada a la derecha. Si la lista está vacía, no se han definido relaciones para la tabla.Add (Agregar)
Crea una nueva relación. Debe definir Especificación de tablas y columnas para que la relación sea válida.Eliminar
Elimina la relación seleccionada en la lista Relaciones seleccionadas . Para cancelar la adición de una relación, utilice este botón para eliminar la relación.Categoría General
Se expande para mostrar Comprobar datos existentes al crear o al habilitar de nuevo y Especificación de tablas y columnas.Check Existing Data on Creation or Re-Enabling
Comprueba con la restricción todos los datos que había en la tabla antes de crear o habilitar de nuevo la restricción.Especificación de tablas y columnas (Categoría)
Se expande para mostrar qué columnas actúan como clave externa y principal (o única) en la relación y a qué tablas pertenecen. Para editar o definir estos valores, haga clic en el botón de puntos suspensivos (...) situado a la derecha del campo de propiedad.Tabla base de clave externa
Muestra la tabla que contiene la columna que actúa como clave externa en la relación seleccionada.Columnas de clave externa
Muestra la columna que actúa como clave externa en la relación seleccionada.Tabla base de claves Primary/Unique
Muestra la tabla que contiene la columna que actúa como clave principal (o única) en la relación seleccionada.Columnas de clave Primary/Unique
Muestra la columna que actúa como clave principal (o única) en la relación seleccionada.Categoría Identidad
Se expande para mostrar los campos de propiedades de Nombre y Descripción.Nombre
Muestra el nombre de relación. Cuando se crea una nueva relación, se le da un nombre predeterminado que se basa en la tabla de la ventana activa del Diseñador de tablas. Puede cambiar el nombre en cualquier momento.Descripción
Describe la relación. Para escribir una descripción más detallada, haga clic en Descripción y luego en los puntos suspensivos (...) que aparecen a la derecha del campo de propiedad. De este modo, obtendrá un área más grande en la que escribir el texto.Categoría Diseñador de tablas
Se expande para mostrar la información de Comprobar datos existentes al crear o al habilitar de nuevo y Exigir para replicación.Exigir para replicación
Indica si se exigirá la restricción cuando un agente de replicación realice una inserción, actualización o eliminación en esta tabla.Exigir restricción de clave externa
Especifica si se pueden modificar los datos de las columnas de la relación y si estos cambios pueden invalidar la integridad de la relación de clave externa. Elija Sí si no desea permitir esos cambios y No si desea permitirlos.Especificación de INSERT y UPDATE (Categoría)
Se expande para mostrar la información de Regla de eliminación y Regla de actualización de la relación.Regla de eliminación
Especifica lo que sucede si un usuario intenta eliminar una fila con datos que están implicados en una relación de clave externa:Sin acción Un mensaje de error indica al usuario que no se permite la eliminación y, a continuación, se revierte la eliminación.
Cascada Elimina todas las filas que contengan datos implicados en la relación de clave externa. No especifique CASCADE si la tabla se va a incluir en una publicación de combinación que utiliza registros lógicos.
Establecer en Null Establece el valor en NULL si todas las columnas de clave externa de la tabla aceptan valores NULL.
Establecer predeterminado Establece el valor predeterminado definido para la columna cuando todas las columnas de clave externa de la tabla tienen definidos valores predeterminados.
Regla de actualización
Especifica lo que sucede si un usuario intenta actualizar una fila con datos que están implicados en una relación de clave externa:Ninguna acción Un mensaje de error indica al usuario que no se permite la actualización y, a continuación, se revierte la actualización.
Cascada Actualiza todas las filas que contengan datos implicados en la relación de clave externa. No especifique CASCADE si la tabla se va a incluir en una publicación de combinación que utiliza registros lógicos.
Establecer en Null Establece el valor en NULL si todas las columnas de clave externa de la tabla aceptan valores NULL.
Establecer predeterminado Establece el valor predeterminado definido para la columna si todas las columnas de clave externa de la tabla tienen valores predeterminados definidos.
En el menú Archivo , haga clic en Guardartable name.
Usar Transact-SQL
Para modificar una clave externa
Para modificar una restricción FOREIGN KEY mediante Transact-SQL, primero debe eliminar la restricción FOREIGN KEY existente y, a continuación, vuelva a crearla con la nueva definición. Para obtener más información, consulte Delete Foreign Key Relationships y Create Foreign Key Relationships.