我们必须RowCount设置要返回或影响的记录数.但是我们需要在执行sql语句之前每次都设置它.我正在寻找一种方法来设置我的应用程序启动后,所以它会影响通过我的应用程序执行的所有查询.
更新
我想实现有限记录的试用版策略!我不想弄乱我的实际代码,并希望以某种方式数据库限制记录的数量返回任何查询的结果!另一种方法是将参数传递给每个商店 - 程序,但我真的不喜欢这个并寻找其他策略!
您可以在代码中为所有命令设置TOP参数
DECLARE @rows int
SET @row = ISNULL(@row, 2000000000)
SELECT TOP (@rows) ... FROM ..
Run Code Online (Sandbox Code Playgroud)
您可以通过这种方式为所有查询全局定义TOP,例如通过包装或扩展SQLCommand
SET ROWCOUNT不是一个安全的选项:它会影响中间结果集并具有其他不可预测的行为.在I/U/D DML中忽略它被部分弃用:参见MSDN
使用SET ROWCOUNT不会影响SQL Server下一版本中的DELETE,INSERT和UPDATE语句
您没有提及您正在使用的应用程序语言,因此我无法为您提供代码,而是为数据库 connect 制作一个包装函数。在此函数中,连接到数据库后,发出SET ROWCOUNT n、创建n参数并添加使其可变所需的任何逻辑。我对 CONTEXT_INFO 做了类似的事情,我在连接函数中设置了它。
请记住,您需要使用此包装函数连接到应用程序中任何位置的数据库(使用搜索和替换),因此,您将始终设置行计数。