ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于CTE的一些问题

关于CTE的一些问题

原创 Linux操作系统 作者:iSQlServer 时间:2009-10-23 14:02:31 0 删除 编辑
Md cte的语法挺奇怪的

1:如果with 语句不在 存储过程的第一句,必须用分号分割<如果在第一句,也可以用分号分割>

2: 一个存储过程只能有一个with cte语句,如果要定义多个cte,则用逗号分割

;With cte1(…) as (…) <这里无论用什么分割都不行> with cte2(…) as(…)这样错误
必须这样写
;<如果with 不是第一句> with cte1(…) as (…), cte2(…) as (…)

3. cte定义后必须马上跟 select …. From 这样的语句,哪怕from CTE无关(这点最变态)

 以下语句是错误的

;with cte1(...) as (...);
print 'test';
以下语句是正确的
;with cte1(...) as (...);
select top 1 * from cte1;
print 'ok';
4. 最后1点,CTE的名字慎用#,比如 with #cte1 (...) as (...),会引起不必要的错误

原文地址:http://jameschen.blog.违规广告.com/985250/214951

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-617283/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-17

  • 博文量
    1319
  • 访问量
    2074044