2010-11-15 48 views
0

考慮以下僞TSQL查詢tsql 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爲空或不顯示a.field2爲空時不顯示任何行? – Raymund 2010-11-16 01:09:17

+0

我將編輯該問題。 :) – 2010-11-16 10:45:27

回答

1

數據集生成器將設置FMTONLY設置選項。這會導致將空結果集返回給客戶端,而不是實際運行查詢。大多數客戶端數據訪問技術(例如ADO.Net,SQL本機客戶端等)都可以查詢結果集對象(甚至是空的)並確定關於它們的模式信息。

我想不出從T-SQL中實際使用這些信息的方法。從存儲過程中獲取結果集的唯一方法是INSERT...EXEC,但在這種情況下,您必須已經定義了一個表。

+0

非常感謝! :) – 2010-11-17 16:55:32

相關問題