-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGenerateDropScript.sql
33 lines (26 loc) · 986 Bytes
/
GenerateDropScript.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--- SCRIPT TO GENERATE THE DROP SCRIPT OF ALL FOREIGN KEY CONSTRAINTS
DECLARE @ForeignKeyName NVARCHAR(MAX);
DECLARE @ParentTableName NVARCHAR(MAX);
DECLARE @ParentTableSchema NVARCHAR(MAX);
DECLARE @SQL NVARCHAR(MAX);
DECLARE curFK CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
SELECT fk.name ForeignKeyName,
SCHEMA_NAME(t.schema_id) ParentTableSchema,
t.name ParentTableName
FROM sys.foreign_keys fk
INNER JOIN sys.tables t ON fk.parent_object_id = t.object_id
WHERE fk.is_ms_shipped=0;
OPEN curFK;
FETCH NEXT FROM curFK
INTO @ForeignKeyName, @ParentTableSchema, @ParentTableName;
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @SQL
= N'ALTER TABLE ' + QUOTENAME(@ParentTableSchema) + N'.' + QUOTENAME(@ParentTableName) + N' DROP CONSTRAINT '
+ QUOTENAME(@ForeignKeyName) + N';' + CHAR(13) + CHAR(10) + N'GO';
PRINT @SQL;
FETCH NEXT FROM curFK
INTO @ForeignKeyName, @ParentTableSchema, @ParentTableName;
END;
CLOSE curFK;
DEALLOCATE curFK;