在SQL中,ROWCOUNT是一个系统变量,用于返回最后一个执行的SQL语句所影响的行数。它可以用于判断SQL语句的执行结果,以及在编写存储过程或触发器时进行逻辑控制。
以下是ROWCOUNT的常见用法:
- 用于判断DELETE、UPDATE、INSERT语句的执行结果:
DELETE FROM table_name WHERE condition; IF ROWCOUNT > 0 BEGIN PRINT '删除成功'; END ELSE BEGIN PRINT '删除失败'; END UPDATE table_name SET column_name = value WHERE condition; IF ROWCOUNT > 0 BEGIN PRINT '更新成功'; END ELSE BEGIN PRINT '更新失败'; END INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); IF ROWCOUNT > 0 BEGIN PRINT '插入成功'; END ELSE BEGIN PRINT '插入失败'; END
- 用于判断SELECT语句的执行结果:
SELECT column1, column2, ... FROM table_name WHERE condition; IF ROWCOUNT > 0 BEGIN PRINT '查询到结果'; END ELSE BEGIN PRINT '未查询到结果'; END
- 用于循环操作:
DECLARE @count INT = 0; WHILE @count < 10 BEGIN -- 执行某个操作 SET @count = @count + 1; END PRINT '循环执行了 ' + CAST(@count AS VARCHAR) + ' 次';
需要注意的是,ROWCOUNT的值在每次执行SQL语句后会被重置为当前语句所影响的行数,并且只返回最后一个执行的SQL语句的行数,所以在使用ROWCOUNT之前需要确保它的值是我们所期望的。