在表中插入添加计数器以计算行数

时间:2013-09-16 07:42:24

标签: sql sql-server-2012

我正在尝试执行insert语句,但我正在检查之前是否已插入数据,如果是,则不会在表中插入行。完成后,我想返回实际插入的行数。任何人都可以帮忙添加一个柜台?我正在使用SQL Server 2012

我的查询如下:

        If NOT EXISTS (Select Id from @List where Id = cast(@IG_Id as int))
BEGIN  
       SET @Sql = 
          'INSERT INTO '+@List+' (Id,Id,LCode,CellNumber,WorkNumber,HomeNumber)
           VALUES ('''+@CId+''','''+@LId+''','''+@LCode+''','''+@MobileNumber+''','''+@BusinessNumber+''','''+ @HomeNumber+''')'
           print @Sql END

1 个答案:

答案 0 :(得分:0)

试试这个

If NOT EXISTS (Select Id from @List where Id = cast(@IG_Id as int))
BEGIN 
    INSERT INTO @List (Id,Id,LCode,CellNumber,WorkNumber,HomeNumber)
    VALUES (@CId, @LId, @LCode, @MobileNumber, @BusinessNumber, @HomeNumber)
END 

SELECT @@ROWCOUNT as NumberOfInsertedRows  

实际上,由于您只有一个要插入的值列表,@@ROWCOUNT只能是0或1


编辑:显示如何从另一个表中插入

INSERT INTO @List (Id,Id,LCode,CellNumber,WorkNumber,HomeNumber)
select Id,Id,LCode,CellNumber,WorkNumber,HomeNumber
from [MyDataSetTable]
where CAST([MyDataSetTable].IG_Id as int) not in (select Id from @List)

SELECT @@ROWCOUNT as NumberOfInsertedRows