2013-02-22 121 views
4

我想使用ISNULL與表中的所有列。ISNULL與SQL Server 2008

像這樣

SELECT ISNULL(* , 'NA') FROM #tbl 

我知道它是一個錯誤的方式我必須分別指定每個列名使用ISNULL

但在我的情況下#tbl是一個臨時表和列動態創建

這樣的:

EXEC ('ALTER TABLE #tbl ADD [' + @bno + '] varchar(30)') 

由於這個我不能在SELECT查詢中使用的列名,因爲列名始終不同。

那我該怎麼辦?

回答

1

更改您的動態SQL:

EXEC ('ALTER TABLE #tbl ADD [' + @bno + '] varchar(30) NULL DEFAULT(''NA'')') 
0

試圖獲得來自tempdb.sys.columns表你temprary表中的字段,然後在這些迭代:

select c.* 
from tempdb.sys.columns c 
inner join tempdb.sys.tables t ON c.object_id = t.object_id 
where t.name like '#TableName%'