SQL Server的SET ROWCOUNT何时会停止影响INSERT/DELETE/UPDATE操作?
关于SET ROWCOUNT的弃用规则说明
- 针对你提到的第一个疑问:当前所有受官方支持的SQL Server版本中,
SET ROWCOUNT本身就不会对INSERT、UPDATE、DELETE操作产生影响,该限制从SQL Server 2005版本就已经正式生效,不存在“未来版本才停止影响DML操作”的情况。 - 针对你提到的第二个疑问:微软官方标注的
SET ROWCOUNT弃用,特指未来版本会停止该功能对SELECT查询返回行数的限制效果。目前官方没有公布该功能完全移除的具体生效时间和对应版本,按照SQL Server的常规功能更迭规则,已标注弃用的功能至少会在后续1~2个大版本中保留兼容性支持,正式移除前微软会在新版本的发布说明中提前公开通知。
替代方案建议
如果需要实现结果行数限制,建议统一使用官方推荐的标准语法:
- 限制查询返回行数:使用
TOP子句或者OFFSET/FETCH语法 - 限制DML操作的生效行数:直接在
INSERT/UPDATE/DELETE语句中搭配TOP子句使用
以上语法不存在弃用风险,兼容性和可维护性更好。
内容的提问来源于stack exchange,提问作者MSoutto
相关产品推荐
相关产品推荐

