4

我想ISNULL与表格的所有列一起使用。

像这样

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

我知道这是一种错误的方式,我必须分别指定每个列名才能使用ISNULL

但在我的情况下#tbl是一个临时表,列是动态创建的

像这样:

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

因此,我不能在选择查询中使用列名,因为列名总是不同的。

所以我该怎么做?

4

2 回答 2

1

将您的动态 SQL 更改为:

EXEC ('ALTER TABLE #tbl ADD [' + @bno + '] varchar(30) NULL DEFAULT(''NA'')')
于 2013-02-22T10:57:23.383 回答
0

尝试从 tempdb.sys.columns 表中获取临时表的字段,然后遍历这些字段:

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%'
于 2013-02-22T10:27:28.980 回答