我拿起類似於下面的一些SQL:如何插入tempoary表兩次
IF EXISTS(SELECT name FROM tempdb..sysobjects WHERE name Like N'#tmp%'
and id=object_id('tempdb..#tmp'))
DROP TABLE #tmp
into #tmp
select * from permTable
我需要添加更多的數據繼續處理之前#tmp:
insert into #tmp
select * from permTable2
但這會給出錯誤,因爲SQL假定了#tmp列的大小和類型(例如,如果permTable有一列填充了整數,但permTable2的列有相同的名稱,但在您獲得的一條記錄中有一個NULL「無法將值NULL插入列'IsPremium ',表'tempdb.dbo。#tmp「)。
我該如何獲得#tmp來獲得我想要的類型?這是非常糟糕的做法嗎?
你是說permTable和permTable2有不同的模式? – 2010-10-20 15:10:31
他們不存在,因爲這是一個簡化的例子,但爲了這個例子的目的,這些表格將具有相同的模式 – Patrick 2010-10-20 15:11:43
順便說一句 - 我會避免選擇*進入 - 這將使源表的任何改變一個突破性的變化。 – 2010-10-20 15:13:16