SQL中更新是否执行的返回值
存储过程中的几句更新语句
- SQL code
Create Procedure [dbo].[SJJH_UpdateClztbyByBWBH] ( @bwbh varchar(20) ) AS Begin --set nocount on update t_shouli set clzt = '' where yxtywlsh in(@bwbh); update t_chengban set clzt = '' where yxtywlsh in(@bwbh); update t_shenhe set clzt = '' where yxtywlsh in(@bwbh); update t_pizhun set clzt = '' where yxtywlsh in(@bwbh); update t_bianjie set clzt = '' where yxtywlsh in(@bwbh); END
现在问题是,你输入的参数不管是数据库里有还是没有
- C# code
int i = db.ExecuteNonQuery(dbcmd);return i;
i都会有返回值,返回5行,但却没有执行
该怎么才能正确判断它是否真正执行了呢?
[解决办法]
@@ROWCOUNT
返回受上一语句影响的行数。
语法
@@ROWCOUNT
返回类型
integer
注释
任何不返回行的语句将这一变量设置为 0 ,如 IF 语句。
示例
下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。
UPDATE authors SET au_lname = 'Jones'
WHERE au_id = '999-888-7777'
IF @@ROWCOUNT = 0
print 'Warning: No rows were updated'