sql 创建用于查找外键约束的脚本,并通过删除和创建外部约束来重建它们。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 创建用于查找外键约束的脚本,并通过删除和创建外部约束来重建它们。相关的知识,希望对你有一定的参考价值。

DECLARE @tableName NVARCHAR(500)
SET @tableName='_Neighborhood'
SELECT
    fk.name,
    object_name(fk.parent_object_id) 'Parent table',
    c1.name 'Parent column',
    object_name(fk.referenced_object_id) 'Referenced table',
    c2.name 'Referenced column',
	'ALTER TABLE dbo.' + object_name(fk.parent_object_id) + 
    ' DROP CONSTRAINT [' + fk.name+']',
	'ALTER TABLE dbo.' + object_name(fk.parent_object_id) + 
    ' ADD CONSTRAINT [' + fk.name +
    '] FOREIGN KEY(' + c1.name + ') REFERENCES dbo.' + 
    object_name(fk.referenced_object_id) + '(' + c2.name + ')'
from 
    sys.foreign_keys fk
inner join
    sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
inner join
    sys.columns c1 ON fkc.parent_column_id = c1.column_id and c1.object_id = fkc.parent_object_id
inner join
    sys.columns c2 ON fkc.referenced_column_id = c2.column_id and c2.object_id = fkc.referenced_object_id
	WHERE object_name(fk.referenced_object_id)=@tableName

以上是关于sql 创建用于查找外键约束的脚本,并通过删除和创建外部约束来重建它们。的主要内容,如果未能解决你的问题,请参考以下文章

sql 删除带外键约束的表的语句是啥

用SQL语句创建一个临时表,建立主键约束,并验证主键约束是不是可以被修改。

高级c#中三层架构中存在外键约束怎么删除

sql server怎样删除外键约束?

SQL表与表之间建立外键约束之后,怎么建立连级更新和删除?

MySQL外键约束,级联删除