<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Tech-Recipes - Latest Comments in Microsoft SQL Server: How to Find the Foreign Keys in a Database</title><link>http://tech-recipes.disqus.com/</link><description>Cookbook of Tech Tutorials</description><atom:link href="https://tech-recipes.disqus.com/microsoft_sql_server_how_to_find_the_foreign_keys_in_a_database/latest.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Mon, 15 Dec 2008 10:19:00 -0000</lastBuildDate><item><title>Re: Microsoft SQL Server: How to Find the Foreign Keys in a Database</title><link>http://www.tech-recipes.com/rx/3194/microsoft-sql-server-how-to-find-the-foreign-keys-in-a-database/#comment-4410327</link><description>&lt;p&gt;Hi!&lt;/p&gt;&lt;p&gt;Your sql seems to have problems with foreign keys consisting of several columns. I get for example:&lt;/p&gt;&lt;p&gt;IE_FK_ADDRESS_USER  IE_ADDRESS  INST_ID         IE_USER  HOLDER_ID&lt;br&gt;IE_FK_ADDRESS_USER  IE_ADDRESS  INST_ID         IE_USER  INST_ID&lt;br&gt;IE_FK_ADDRESS_USER  IE_ADDRESS  USER_HOLDER_ID  IE_USER  HOLDER_ID&lt;br&gt;IE_FK_ADDRESS_USER  IE_ADDRESS  USER_HOLDER_ID  IE_USER  INST_ID&lt;/p&gt;&lt;p&gt;but just the second and third row are okay. I am far from being an sql expert, but the following select returns the correct result for my database:&lt;/p&gt;&lt;p&gt;SELECT &lt;br&gt;ConstraintName = a.CONSTRAINT_NAME, &lt;br&gt;FromTable = c.TABLE_NAME, &lt;br&gt;FromColumn = c.COLUMN_NAME, &lt;br&gt;ToTable = d.TABLE_NAME, &lt;br&gt;ToColumn = d.COLUMN_NAME &lt;br&gt;FROM &lt;br&gt;INFORMATION_SCHEMA.TABLE_CONSTRAINTS a, &lt;br&gt;INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS b, &lt;br&gt;INFORMATION_SCHEMA.KEY_COLUMN_USAGE c, &lt;br&gt;INFORMATION_SCHEMA.KEY_COLUMN_USAGE d &lt;br&gt;WHERE a.CONSTRAINT_TYPE = 'FOREIGN KEY' &lt;br&gt;and a.CONSTRAINT_NAME = b.CONSTRAINT_NAME &lt;br&gt;and a.CONSTRAINT_NAME = c.CONSTRAINT_NAME &lt;br&gt;and b.UNIQUE_CONSTRAINT_NAME = d.CONSTRAINT_NAME &lt;br&gt;and c.ORDINAL_POSITION = d.ORDINAL_POSITION &lt;br&gt;ORDER BY a.CONSTRAINT_NAME, c.ORDINAL_POSITION&lt;/p&gt;&lt;p&gt;Best regards,&lt;/p&gt;&lt;p&gt;Heiner&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Heiner</dc:creator><pubDate>Mon, 15 Dec 2008 10:19:00 -0000</pubDate></item></channel></rss>