欢迎投稿

今日深度:

set RowCount 与 top n,setrowcounttop

set RowCount 与 top n,setrowcounttop


有的时候,使用top n中的n是一个变量,那就需要用()来完成:

	declare @count1 int
	set @count1 = 8
	select top <strong>(@count1)</strong> * from MyTable


如果用set RowCount一样可以达到相同的效果

	declare @count1 int
	set @count1 = 8
        set RowCount @count1
	select * from MyTable

但注意,使用set RowCount有副作用的,一旦设置了,对于后面的语句都会影响到,而且SQL Server在后续的版本中对此有更改,所以要小心使用。
重要提示:
在 SQL Server 的下一个版本中,使用 SET ROWCOUNT 将不会影响 DELETE、INSERT 和 UPDATE 语句。在新的开发工作中,避免将 SET ROWCOUNT 语句与 DELETE、INSERT 和 UPDATE 语句一起使用,并计划修改当前使用该语句的应用程序。另外,对于当前使用 SET ROWCOUNT 的 DELETE、INSERT 和 UPDATE 语句,建议您使用 TOP 语法重写它们。有关详细信息,请参阅 DELETE (Transact-SQL)、INSERT (Transact-SQL) 或 UPDATE (Transact-SQL)。


SQL语法中as与set

as为定义名称,就是这个字段的别名,页眉上显示的名称.
set为变量赋值.
 

sqlserver存储过程中,set rowcount 0是什?

一般在语句中使用set rowcount是为了使后续的查询、更新、删除操作只影响指定的行数
比如 一起执行如下语句

set rowcount 1
SELECT * FROM sysobjects
结果只返回一行,而如果不加set rowcount 1或者使用set rowcount 0
就会返回所有结果

我想你见到的存储过程里包含set rowcount 0的情况是因为之前应该包含set rowcount 1之类大于0的set rowcount 设置,是为了使set rowcount 0后边的语句受影响的行数为全部记录。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/4062.html NewsArticle set RowCount 与 top n,setrowcounttop 有的时候,使用top n中的n是一个变量,那就需要用()来完成: declare @count1 intset @count1 = 8select top strong(@count1)/strong * from MyTable 如果用set RowCount一样可以达...
评论暂时关闭