Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Script for all FK Constraints in a Database?
Message
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Autre
Versions des environnements
SQL Server:
SQL Server 2008
Divers
Thread ID:
01537261
Message ID:
01537268
Vues:
25
>>>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
>
>Thank you.

You're welcome. I have My Projects folder organized. In particular, I have Meta-Data folder there. So, I just took two scripts I already have saved.
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform