sql-server - SQL Server : Maximum number of records to return

标签 sql-server tsql

我们有 RowCount 来设置要返回或影响的记录数。但是我们每次执行sql语句之前都需要设置这个。我正在寻找一种方法来在我的应用程序启动后设置它,因此它会影响通过我的应用程序执行的所有查询。

更新

我想实现有限记录的试用版策略!我不想弄乱我的实际代码,并希望数据库以某种方式限制任何查询结果返回的记录数量!另一种方法是向每个存储过程传递一个参数,但我真的不喜欢这个,并正在寻找其他策略!

最佳答案

您可以在代码中为所有命令参数化 TOP

DECLARE @rows int
SET @row = ISNULL(@row, 2000000000)
SELECT TOP (@rows) ... FROM ..

您可以通过这种方式为所有查询全局定义 TOP,例如通过包装或扩展 SQLCommand

SET ROWCOUNT 不是一个安全的选项:它会影响中间结果集并具有其他不可预测的行为。并且在 I/U/D DML 中部分弃用并忽略它: see MSDN

Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in the next release of SQL Server

关于sql-server - SQL Server : Maximum number of records to return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6277905/

相关文章:

sql-server - SQL Server : Find out what row caused the TSQL to fail (SSIS)

sql - 如何在 if else 语句中设置多个值?

sql - 我可以在 SQL 的聚合函数中包含非聚合列而不将其放入 GROUP BY 子句中吗?

sql-server - 当 Integrated Security=false 时,CREATE DATABASE 权限在数据库 'master' 中被拒绝 - 为什么尝试创建已存在的数据库?

sql - SQL选择虚拟数据

sql-server - 检查 T-SQL 中字符串的起始字符是否按字母顺序排列

sql - RETURN 在带有 TRY-CATCH block 的事务内

sql - SQL Server中如何写客户订单依据

SQL,基于需要重新选择的插入值的foreach-loop-like INSERT,可能吗?

sql-server - SSIS并行处理foreach循环