setRowCount与topn

WBOY
WBOYオリジナル
2016-06-07 16:06:101382ブラウズ

有的时候,使用top n中的n是一个变量,那就需要用()来完成: declare @count1 intset @count1 = 8select top strong(@count1)/strong * from MyTable 如果用set RowCount一样可以达到相同的效果 declare @count1 intset @count1 = 8 set RowCount @count1s

有的时候,使用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)。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:数据库的备份与恢复次の記事:spfile