2010-11-15 2 views
0

Рассмотрим следующий пример псевдо-TSQLНеверность столбца запроса в результате набора строк инструкции SELECT SELECT?

table a 
{ 
    field1 int, 
    field2 int NULL 
} 

table b 
{ 
    field1 int, 
    field3 int 
} 


create procedure Sp1 
As 
    Select a.field1, a.field2, b.field3 
    From a inner join b on a.field1 = b.field1 

Можно ли запросить процедуру Sp1 для если результирующие столбцы могут быть пустым или нет? Кажется, генератор набора данных может вытащить это правильно?

Можно ли это сделать в tsql? Другими средствами?


Желаемый результат:

field1 int, field2 int NULL, field3 int 

Или:

field1, field2 nullable, field3 

(Первый, очевидно, будет лучше)


Спасибо!

+0

Я не понимаю, ясно ли у нашего вопроса, вы имеете в виду, что не показываете какую-либо строку, когда a.field2 имеет значение null или не показывает a.field2 как null? – Raymund

+0

Я отредактирую вопрос. :) –

ответ

1

Генератор набора данных установит опцию FMTONLY. Это приводит к тому, что пустые наборы результатов возвращаются клиенту вместо фактического выполнения запросов. Большинство технологий доступа к данным для клиентов (например, ADO.Net, собственный клиент SQL и т. Д.) Имеют способы опроса объектов набора результатов (даже пустых) и определения информации о схемах.

Я не могу придумать способ фактически использовать эту информацию из T-SQL. Единственный способ захвата результирующего набора из хранимой процедуры - INSERT...EXEC, но в этом случае вы должны уже определить таблицу.

+0

Большое спасибо! :) –