Sqlserver删除所有外键

DECLARE @DropFK NVARCHAR(MAX) = '';
DECLARE @TableName NVARCHAR(128);
DECLARE @FKName NVARCHAR(128);

DECLARE FKCursor CURSOR FOR
SELECT
TABLE_NAME,
fk.CONSTRAINT_NAME
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS fk
JOIN
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
ON fk.CONSTRAINT_NAME = rc.CONSTRAINT_NAME
WHERE
fk.CONSTRAINT_TYPE = 'FOREIGN KEY';

OPEN FKCursor;
FETCH NEXT FROM FKCursor INTO @TableName, @FKName;

WHILE @@FETCH_STATUS = 0
BEGIN
SET @DropFK = 'ALTER TABLE ' + QUOTENAME(@TableName) + ' DROP CONSTRAINT ' + QUOTENAME(@FKName) + ';';
EXEC sp_executesql @DropFK;
PRINT 'Dropped Foreign Key Constraint: ' + @FKName;
FETCH NEXT FROM FKCursor INTO @TableName, @FKName;
END;

CLOSE FKCursor;
DEALLOCATE FKCursor;

posted on 2025-03-01 11:29  洞幺人生  阅读(20)  评论(0)    收藏  举报