Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Script for all FK Constraints in a Database?
Message
 
General information
Forum:
Microsoft SQL Server
Category:
Other
Environment versions
SQL Server:
SQL Server 2008
Miscellaneous
Thread ID:
01537261
Message ID:
01537263
Views:
50
>Hi,
>
>Is there a way to create a script of all FK Constraints in a database such that I could apply this script to anther database? or the same database after some or all of the constraints are deleted?
>
>TIA.
SELECT 
 OBJECT_NAME(f.rkeyid) PK_Table_name,
 c2.name PK_Column_name,
 OBJECT_NAME(f.constid) Constraint_name,
 OBJECT_NAME(f.fkeyid) FK_Table_name,
 c1.name FK_Column_name
FROM dbo.sysforeignkeys f
INNER JOIN dbo.syscolumns c1 ON c1.id = f.fkeyid AND c1.colid = f.fkey
INNER JOIN dbo.syscolumns c2 ON c2.id = f.rkeyid AND c2.colid = f.rkey
--where Object_Name(fkeyId) = 'Foreign Table Name' 
ORDER BY PK_Table_name, FK_Table_name, FK_Column_name;
Alternatively
SELECT 
    PK_Table  = PK.TABLE_NAME,    
    PK_Column = PT.COLUMN_NAME, 
    FK_Table  = FK.TABLE_NAME, 
    FK_Column = CU.COLUMN_NAME, 
 
    Constraint_Name = C.CONSTRAINT_NAME 
FROM 
    INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C 
    INNER JOIN 
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK 
        ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME 
    INNER JOIN 
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK 
        ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME 
    INNER JOIN 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU 
        ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME 
    INNER JOIN 
    ( 
        SELECT 
            i1.TABLE_NAME, i2.COLUMN_NAME 
        FROM 
            INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1 
            INNER JOIN 
            INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 
            ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME 
            WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY' 
    ) PT 
    ON PT.TABLE_NAME = PK.TABLE_NAME 
-- optional: 
ORDER BY 
    1,2,3,4
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform