2012-04-09 13 views
0

を参照してください。特定のテーブルに関するカラムの詳細を見つける必要があります。このテーブルは、現在参照されているテーブル名や参照されているカラム名のようなテーブルを現在使用しています。 現在、テーブルに外部キーが含まれているかどうかを返しますが、参照されたテーブル名などについて何も表示していないかどうかを返すので、このようなクエリを使用しました.i私の側からは多くの方法を試しましたが、 私はsys.foreign_key_columnssys.foreign_keysを使用しようとしましたが、正しく配置していない可能性があります。coloumnの詳細は、SQL Serverの

SELECT sys.columns.column_id AS ColumnId,sys.columns.name AS ColumnName, 
sys.types.name AS Datatype,(SELECT COUNT(column_name) FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE 
WHERE TABLE_NAME = sys.tables.name AND CONSTRAINT_NAME =( SELECT constraint_name FROM 
INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = sys.tables.name AND constraint_type = 
'PRIMARY KEY' AND COLUMN_NAME = sys.columns.name)) AS IsPrimaryKey, (SELECT COUNT(column_name) 
    FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME = sys.tables.name AND CONSTRAINT_NAME 
    = (SELECT constraint_name FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = sys.tables.name 
    AND constraint_type = 'Foreign key' AND COLUMN_NAME = sys.columns.name ) ) AS IsForeignkey, 
    sys.columns.max_length AS Lenght /*BUG*/ 
    FROM sys.columns, sys.types, sys.tables WHERE 
    sys.tables.object_id = sys.columns.object_id AND sys.types.system_type_id = sys.columns.system_type_id 
    AND sys.types.user_type_id = sys.columns.user_type_id AND sys.tables.name ='tablename' ORDER BY columnid 

私はsys.foreign_key_columnssys.foreign_keysを使用しようとしましたが、私はbugs.mayが、私はそれを適切に配置しておりませんことです。

答えて

0

私はthisがあなたが探しているものだと思います。

関連する問題