Groups | Blog | Home
all groups > sql server (microsoft) > july 2005 >

sql server (microsoft) : scripting enforced foreign keys


endever NO[at]SPAM gmail.com
7/26/2005 2:39:33 AM
How do I script foreign keys that include data on whether they are set
to enforce for insert and updates. I currently have the following query
that nearly does the job.

select o3.name as ForeignKeyName, o1.name as ParentTableName, o2.name
as ChildTableName,
c1.name as ParentKey, c2.name as ChildKey, c4.update_rule,
c4.delete_rule from sysforeignkeys
fk inner join sysobjects o1 on fk.rkeyid = o1.id inner join sysobjects
o2 on fk.fkeyid =
o2.id inner join sysobjects o3 on o3.id = fk.constid inner join
syscolumns c1 on c1.id =
fk.rkeyid and c1.colid = fk.rkey inner join syscolumns c2 on c2.id =
fk.fkeyid and c2.colid
= fk.fkey inner join information_schema.referential_constraints c4 on
c4.constraint_name =
o3.name where (o1.name = 'aTablename' or o2.name = 'aTablename') order
by o3.name

I know that I shouldn't be using system tables, but it seems that the
information_schema views down't give me what I want and the sp_
procedures just baffle me.

Can someone please help. I'm just trying to retreive what EM gives when
you look at the manage relationships tab of the design table property
form.

Many thanks,

Paul.
David Portas
7/27/2005 12:00:00 AM
You can script foreign keys and other objects from Query Analyzer or
Enterprise Manager or use the SQLDMO script method to do it from code.

--
David Portas
SQL Server MVP
--

[quoted text, click to view]

AddThis Social Bookmark Button