如何将除结果之外的sql server保存到表中?

时间:2017-04-04 07:10:49

标签: sql-server

我是sql server中的新用户并尝试将除结果之外的内容插入到表中以便编写此代码:

insert into [tablediff].[dbo].[TempTable]
    select [Phone] from [dbo].[CRMSubscriber]
    except
    select [Phone] from [dbo].[BillingSubscriber]


该代码工作得非常好,但是当我尝试运行此代码时:

use [tablediff]
if (not exists(
    insert into [tablediff].[dbo].[TempTable]
    select [Phone] from [dbo].[CRMSubscriber]
    except
    select [Phone] from [dbo].[BillingSubscriber]
))
begin
    print 'no record'
end 
else
begin
    print 'has record'
end


得到这个错误:

  

第15行,第1行,第3行       关键字' insert'附近的语法不正确。

     

Msg 102,Level 15,State 1,Line 7       ')'附近的语法不正确。

     

第15行,第11行,第1行,第11行       关键字' else'附近的语法不正确。

我该如何解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:2)

您需要@@rowcount变量。这将告诉您在上一次操作中受影响(插入,更新或删除)的行数。

use [tablediff]

insert into [tablediff].[dbo].[TempTable]
select [Phone] from [dbo].[CRMSubscriber]
except
select [Phone] from [dbo].[BillingSubscriber]

if @@ROWCOUNT = 0
begin
    print 'no record'
end 
else
begin
    print 'has record'
end