2011-06-17 19 views

Respuesta

8

Si las teclas foráneas están configuradas para cambios en cascada, el valor debería cambiar automáticamente.

+1

me sale: No se puede actualizar la columna de identidad 'Id'.query es ACTUALIZACIÓN [TableA] SET Id = 8 donde id = 9 – user278618

+1

Para consultar todas http://stackoverflow.com/questions/751522/how-to -change-identity-column-values-programmatically – Ray

+0

@ user278618: usted ** no puede ** actualizar un valor de 'IDENTIDAD 'existente; no hay forma de hacerlo. –

3

Asegúrese de que sus relaciones de claves foráneas tengan ON UPDATE CASCADE especificado, y la clave externa se actualizará automáticamente para coincidir con la clave principal.

De los libros en pantalla: http://msdn.microsoft.com/en-us/library/ms174123%28v=SQL.90%29.aspx

ON UPDATE CASCADE {| NO HAY ACCION | SET DEFAULT | SET NULL}

Especifica la acción que le sucede a una fila de la tabla que se crea cuando esa fila tiene una relación referencial , y la fila referenciada se actualiza en la tabla padre. El valor predeterminado NO ES NINGUNA ACCIÓN. Consulte la sección "Comentarios" de más adelante en este tema para obtener más información.

0

La actualización de una clave principal no actualiza las claves externas relacionadas, solo elimina los registros relacionados en otras tablas, ya que el servidor SQL trata la actualización como eliminar e insertar. Este es Sql Server 2000, no estoy seguro de las versiones posteriores. Usando "en cascada la actualización de la eliminación en cascada", los efectos en cascada de "eliminar e insertar: alias actualización", elimina los registros relacionados en otras tablas.

Cuestiones relacionadas