• 查询语句影响的行数


    在SQL Server中,使用全局变量@@RowCount 和函数RowCount_Big()返回上一条语句影响的行数。如果行数大于 20 亿,则需要使用ROWCOUNT_BIG()。

    1,使用@@RowCount 和 RowCount_Big() 能够获取查询和更新命令影响的行数:

    1. 获取select子句返回的结果集的行数
    2. 获取数据更新命令(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
  • 相关阅读:
    SQLite剖析之异步IO模式、共享缓存模式和解锁通知
    SQLite剖析之动态内存分配
    SQLite剖析之锁和并发控制
    SQLite剖析之临时文件、内存数据库
    SQLite剖析之数据类型
    关于Docker目录挂载的总结(一)
    docker常用命令
    玩转docker(一)
    go hello
    术语“go”不被识别为cmdlet,函数,脚本文件或可操作程序的名称
  • 原文地址:https://www.cnblogs.com/ljhdo/p/4634011.html
Copyright © 2020-2023  润新知