Actualizar acción en MS SQL Server

Las acciones referenciales permiten que un usuario actualice o elimine una columna de la tabla principal. Si se elimina una columna de la tabla principal, se elimina inmediatamente de la tabla secundaria.

Sintaxis:

foreign key (foreign-key_constraint) 
references parent_table (parentkey_column) 
ON Update Action

Considere dos tablas: Student (tabla principal) y Marks (tabla secundaria) de la base de datos de la universidad. Si un usuario desea actualizar una columna, debe hacerlo de la siguiente manera:


Mesa – Estudiante

Nombre Rollnumber Curso
maya 111 CSE
Riya 112 mecánico


Tabla – Marcas

Nombre Rollnumber Marcas
maya 111 8.9
Riya 112 7.9

La consulta SQL para realizar la acción de actualización en la tabla es:

foreign key references 
Student(rollnumber) 
ON Update Action

Producción –


Mesa – Estudiante

Nombre Rollnumber Curso
maya 110 CSE
Riya 111 mecánico


Tabla – Marcas

Nombre Rollnumber Marcas
maya 110 8.9
Riya 111 7.9

Esto también actualiza la columna de número de rollo de toda la tabla principal y secundaria. En la sintaxis, la restricción no es un término obligatorio para incluir. Se puede utilizar siempre que sea necesario. Hay otras acciones permitidas: sin acción, en cascada, establecer nulo, establecer predeterminado.

  • Al actualizar sin acción:
    genera un error y revierte la acción de actualización en la tabla principal.
  • En actualización en cascada:
    la acción en cascada actualiza todas las filas de la tabla principal y secundaria.
  • Al actualizar establecer nulo:
    las filas de la tabla principal y secundaria se establecen en nulo solo si la clave externa es anulable.
  • Al actualizar el valor predeterminado:
    las filas de la tabla secundaria se establecen como predeterminadas si las filas correspondientes de la tabla principal se actualizan solo si la clave externa tiene definiciones predeterminadas.

Publicación traducida automáticamente

Artículo escrito por mangalgiaishwarya2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *