小编Mik*_*eel的帖子

为什么 SET ROWCOUNT 不会在 GO 后重置?

根据该文件SCOPE_IDENTITY

作用域是一个模块:存储过程、触发器、函数或批处理。因此,如果两个语句在同一个存储过程、函数或批处理中,则它们在同一范围内。

根据SQL Server Utilities Statements - GO

GO 不是 Transact-SQL 语句;它是 sqlcmd 和 osql 实用程序以及 SQL Server Management Studio 代码编辑器识别的命令。SQL Server 实用程序将 GO 解释为它们应该将当前一批 Transact-SQL 语句发送到 SQL Server 实例的信号。

当前批次的语句由自上次 GO 以来输入的所有语句组成,或者如果这是第一次 GO,则自特别会话或脚本开始以来输入的所有语句。

有了这些信息,我(在 SMSS 中)写了这个 T-SQL:

SET ROWCOUNT 1    -- Limit to 1 row returned

-- Returns 1 row as expected
SELECT *
FROM MyTable

GO -- Batch ends

-- Still returns one row
SELECT *
FROM MyTable
Run Code Online (Sandbox Code Playgroud)

根据我的理解SET ROWCOUNT(我知道它在 …

sql-server t-sql

6
推荐指数
1
解决办法
1302
查看次数

标签 统计

sql-server ×1

t-sql ×1