1

いくつかのテーブルをマージしているので、特定の列名を照会する必要があります。私が要約しているこれらのテーブルの理由は、FK候補列がありますが、FKがないため、すべてのテーブルを調べて、特定の列名が含まれているかどうかを確認する必要があります。

これは別の投稿から入手しましたが、完全ではありません。

SELECT 'SELECT ''' + TABLE_NAME + '.' + column_name + 
   ''' FROM ' + TABLE_NAME + ' WHERE ' + 
   column_name + ' = ''[THE COLUMN NAME I AM LOOKING FOR]'''
FROM INFORMATION_SCHEMA.COLUMNS 

上記のTSQLが正しく構造化されていないか、何かが足りないようです。

4

1 に答える 1

2

このクエリは、パラメータに入力したものに一致する列のリスト(スキーマ名とテーブル名とともに)を取得します@SomeColumnName

DECLARE @SomeColumnName VarChar(200) = 'Test';

SELECT S.name SchemaName, T.name TableName, C.name ColumnName
FROM sys.columns C
     JOIN sys.tables T ON C.object_id = T.object_id
     JOIN sys.schemas S ON T.schema_id = S.schema_id
WHERE C.name = @SomeColumnName;

また、新しいDMVがないバージョンのSQL Serverを使用している場合は、次を使用してください。

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS C
WHERE C.COLUMN_NAME = @SomeColumnName;
于 2012-08-04T19:07:07.027 に答える