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

第二个查询返回:

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 回答