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 に答える