2012-06-19 2 views
0

У меня есть таблица, созданная в sql. но в моем приложении я использую INFORMATION_SCHEMA для выполнения некоторых задач, я был удивлен не был синхронизирован с моим определением таблицы, то есть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 

Что происходит и как его исправить? Заранее спасибо

EDIT:

NB: tblSatComBillingPackage содержит FK поле SatComRatingTableID. Я использую это поле, чтобы получить информацию от INFORMATION_SCHEMA ...

+0

Поскольку вы запрашивая против неправильно Таблица? –

ответ

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 
+0

Я забыл упомянуть, что SatcomBillingPackage имеет SatComRatingTableID FK, и я использую это значение для получения связанной информации из Information_Schema ... – Boomer

+0

@Boomer - нет, вы потеряли меня там. У вас есть запрос вверху на 'tblSatComRatingTable'. Затем вы запрашиваете 'INFORMATION_SCHEMA' для * другой * таблицы (' tblSatComBillingPackage'). И у вас есть фильтр WHERE', который, как кажется, предназначен для фильтрации любых успешных совпадений. –

+0

Извините и спасибо за поддержку. table BillingPackage содержит поле с именем tblSatComRatingTableID, когда я пытаюсь получить этот столбец из INFORMATION_SCHEMA, он дает мне NULL. – Boomer