标签:
第一部分:TSql Top 有两种用法
1,限制查询结果集返回的行数或总行数的百分比。
当将 TOP 与 ORDER BY 子句结合使用时,结果集限制为前 N 个已排序行;否则,以未定义的顺序返回前 N 个行。
2,限制 INSERT、UPDATE、MERGE 或 DELETE 语句影响的行数。
第二部分:讨论top的第二种用法
1,示例代码如下
create table dbo.FinanceMonth (MonthNum int , quantity int ) ;with cte as ( select 1 as MonthNum,100 as quantity union all select MonthNum+1,quantity+100 from cte where MonthNum<12 ) insert into dbo.FinanceMonth select * from cte
2,使用 SET ROWCOUNT 限制返回的行数,但是MS不推荐使用这种方式,“在 SQL Server 的将来版本中,使用 SET ROWCOUNT 将不会影响 DELETE、INSERT 和 UPDATE 语句”。
SET ROWCOUNT 2 select * from dbo.FinanceMonth --等价于 select top 2 * from dbo.FinanceMonth
取消限制,将 SET ROWCOUNT 指定为 0
SET ROWCOUNT 0
3,使用top限制DELETE、INSERT 和 UPDATE影响的行数,top后面的数字或百分数必须加上小括号,否则出错。
delete top (2) from dbo.FinanceMonth update top(2) dbo.FinanceMonth set quantity=1 insert top(2) into dbo.FinanceMonth select * from dbo.FinanceMonth
标签:
原文地址:http://www.cnblogs.com/ljhdo/p/4533385.html