SQL Server 2008中的ISNULL函数

4

我想在表的所有列上使用 ISNULL

像这样:

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

我知道使用ISNULL时,逐个指定每个列名是错误的方式。

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

就像这样:

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

由于这个原因,我无法在select查询中使用列名,因为列名总是不同的。那么我该怎么办呢?
2个回答

1
将动态SQL更改为:
EXEC ('ALTER TABLE #tbl ADD [' + @bno + '] varchar(30) NULL DEFAULT(''NA'')')

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%'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接