0
我有下面的代碼塊:與全局臨時表時,當它們不存在
DECLARE @TTable VARCHAR(MAX)= 'SELECT X.* ';
SELECT @TTable+='
INTO ##NewTemp1' + convert(varchar(6), @TStamp) + '
FROM (
SELECT *
FROM ##Temp1' + convert(varchar(6), @TStamp) + '
UNION
SELECT *
FROM ##Temp2' + convert(varchar(6), @TStamp) + '
UNION
SELECT *
FROM ##Temp3' + convert(varchar(6), @TStamp) + '
...
etc
...
UNION
SELECT *
FROM ##Temp22' + convert(varchar(6), @TStamp) + '
UNION
SELECT *
FROM ##Temp23' + convert(varchar(6), @TStamp) + '
) X'
PRINT(@TTable);
EXECUTE(@TTable);
的問題是,對臨時表的場合一個(或多個)不會得到創建。當發生這種情況時,這段代碼會失敗,因爲它試圖聯合一個不存在的表。
我知道我可以使用下面的代碼行,以確定是否一個臨時表存在:
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
,但我怎麼能是整合成一個字符串像我在上面使用(@TTable)檢查並確保一個表在工會之前存在?