2015-08-18 27 views
0
select @sql='select * from application.dbo.'[email protected]+''+char(13)+char(10)+'except'+char(13)+char(10)+'select * from '+'application_check'+'.dbo.'[email protected]+'' 
exec sp_executesql @sql 


IF OBJECT_ID('TEMPDB..##table') IS NOT NULL 
DROP TABLE ##table 
select @sql1='select * into ##table from '+ @TableName1+' where 1=2' 

exec sp_executesql @sql1 

insert into ##table 
exec sp_executesql @sql 
+0

和最新的問題?我們可以有一些背景知道你想要做什麼? – DevDonkey

+0

似乎你在'## table'中沒有相同數量/類型的字段,並且在你的查詢的返回中......只是比較兩者。 –

+0

它應該是'+',除了'+'而不是'+',除了'+'並且請嘗試打印您的查詢,然後您自己將修復此問題 – wiretext

回答

0

插入你的數據與命令DROP TABLE ##表中刪除表##表,所以你不能選擇,甚至在它

0

您的查詢插入似乎是罰款。它使用列的名稱創建一個全局臨時表,然後插入它們。

所以,真正唯一的問題可能是在聲明的不同部分表中的一些差異。表格可以在兩個表述之間進行修改,但這不太可能。

你兩個SQL語句引用這些表:

from application.dbo.'[email protected] 

from '+ @TableName1+' 

唯一的區別我SEEE爲[email protected]@TableName1

因此,我認爲你不在application_check數據庫。您所在的數據庫具有一個具有相同名稱的表,並且這些列是不同的。

順便說一句,我會寫的第一條語句:

select @sql = ' 
select * 
from application.dbo.' + @TableName1+ + ' 
except 
select * 
from application_check.dbo.'[email protected] 
' 

你不需要明確提出CR/LF成字符串的字符。你可以包含新的行。

+0

但我在將數據插入表中時面臨問題 insert到##表 exec sp_executesql @sql。 我甚至交叉檢查,兩個數據庫的列數相同 –

+0

@shivanagesh。 。 。列的相同*號碼並不意味着*類型*是兼容的。 –

相關問題