0

SQLで作成されたテーブルがあります。しかし、私のアプリケーションでは、INFORMATION_SCHEMA を使用していくつかのタスクを実行していますが、テーブル定義と同期されていないことに驚きました。

コード:

SELECT  SatComRatingTableID         -- This is working
FROM    dbo.tblSatComRatingTable


SELECT  f.field ,
        c.COLUMN_NAME
FROM    dbo.wiztbl_Fields f
        LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON c.COLUMN_NAME = f.Field
                                                  AND c.TABLE_NAME = 'tblSatComBillingPackage'
WHERE   f.DataObjectID = 2717
        AND COLUMN_NAME IS NULL

2 番目のクエリは次を返します。

SatComRatingTableID NULL

何が起こっていて、それを修正する方法は? 前もって感謝します

編集

注意: tblSatComBillingPackage には、FK フィールド SatComRatingTableID が含まれています。そのフィールドを使用して INFORMATION_SCHEMA から情報を取得しています...

4

1 に答える 1

2

間違ったテーブルをクエリしており、結果をフィルタリングして成功を妨げているようです:

SELECT  SatComRatingTableID
FROM    dbo.tblSatComRatingTable --<--This


SELECT  f.field ,
        c.COLUMN_NAME
FROM    dbo.wiztbl_Fields f
        LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON c.COLUMN_NAME = f.Field
             AND c.TABLE_NAME = 'tblSatComBillingPackage'  --<-- Does't match this
WHERE   f.DataObjectID = 2717
        AND COLUMN_NAME IS NULL --<-- And this seems wrong also
于 2012-06-19T08:35:19.457 に答える