在SQL Server中,使用全局变量@@RowCount 和函数RowCount_Big()返回上一条语句影响的行数。如果行数大于 20 亿,则需要使用ROWCOUNT_BIG()。
1,使用@@RowCount 和 RowCount_Big() 能够获取查询和更新命令影响的行数:
- 获取select子句返回的结果集的行数
- 获取数据更新命令(insert,update 或 delete)影响的行数
2,设置查询语句返回的数据行数
set RowCount @Num
Set ROWCOUNT选项在语句执行时设置,只会影响当前 Session,一个Session将使用最近一次设置的ROWCOUNT,直到Session结束或修改了ROWCOUNT。
取消ROWCOUNT限制
SET ROWCOUNT 0
3,使用Top子句设置数据修改语句(delete,update,insert)影响的数据行数
delete top (10) from dbo.table_name update top (10) dbo.table_name set col_name='xxx' insert top(10) into dbo.table_name select .....
4,示例
使用 declare 子句定义一个变量不会影响上一条语句影响的数据行数,可以定义一个int 变量,存储 @@RowCount 和 RowCount_Big() 的返回值。
SET ROWCOUNT 0 -- return 10 records select top 10 * from sys.objects --return value is 10 select @@ROWCOUNT,ROWCOUNT_BIG() --return value is 1 select ROWCOUNT_BIG() --declare 子句不会影响返回的数据行数 declare @n int select ROWCOUNT_BIG(),@@rowcount --set 和 select 子句影响数据行数是1 set @n=10 select ROWCOUNT_BIG(),@@rowcount