Sql 表重命名时应采取哪些预防措施?
有时,由于重命名表,可能会发生插入错误。 任何人都可以共享重命名表之前或之后应该执行的任何过程 例如: INSERT语句与外键约束冲突 “ForignKeyName”。数据库“DB”表中发生冲突 “表”,列“列”Sql 表重命名时应采取哪些预防措施?,sql,sql-server,foreign-keys,rename,conflict,Sql,Sql Server,Foreign Keys,Rename,Conflict,有时,由于重命名表,可能会发生插入错误。 任何人都可以共享重命名表之前或之后应该执行的任何过程 例如: INSERT语句与外键约束冲突 “ForignKeyName”。数据库“DB”表中发生冲突 “表”,列“列” 找到所有外键并更改约束。为此,所有引用的表都应该知道 下面的查询列出了引用重命名表的所有约束。 请更改相应表中的约束条件 SELECT f.name constraint_name ,OBJECT_NAME(f.parent_object_id) refere
找到所有外键并更改约束。为此,所有引用的表都应该知道 下面的查询列出了引用重命名表的所有约束。 请更改相应表中的约束条件
SELECT
f.name constraint_name
,OBJECT_NAME(f.parent_object_id) referencing_table_name
,COL_NAME(fc.parent_object_id
,fc.parent_column_id) referencing_column_name
,OBJECT_NAME (f.referenced_object_id) referenced_table_name
,COL_NAME(fc.referenced_object_id
,fc.referenced_column_id) referenced_column_name
,delete_referential_action_desc
,update_referential_action_desc
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.object_id = fc.constraint_object_id
where
OBJECT_NAME (f.referenced_object_id) ='RENAMEING_TABLE_NAME' -- deleting/ renaming table
ORDER BY f.name
根据“更改对象名称的任何部分都可能破坏脚本和存储过程。我们建议您不要使用此语句重命名存储过程、触发器、用户定义函数或视图;相反,请删除对象并使用新名称重新创建它。”该错误与重命名表无关。由于数据原因,您正在破坏约束。这对创建表并重命名旧表而不是更新表的人很有帮助。