一直不学无术,所以也就一直懵懵懂懂。

 

之前有朋友问起以下代码怎么不行:

 

declare @rowcount int;
set @rowcount = 10;
select top @rowcount * from table

 

这个是因为,TOP 只接受常量做数量参数,而不能接受变量,给对方提供的解决方案是:

 

declare @sql nvarchar(4000);
set @sql = 'select top ' + convert(varchar(10), @rowcount+ ' * from table'

exec(@sql)

 

刚在博问里,人问起 rowcount 的用法,查了下,文档里是这样说的:

 

 



使 SQL Server 在返回指定的行数之后停止处理查询。

SQL里ROWCOUNT的使用 Transact-SQL 语法约定


SET ROWCOUNT { number | @number_var } 

number | @number_var

在停止特定查询之前要处理的行数(整数)。

相关文章: