在SQL Server中使用With子句

hgu*_*yan 2 sql-server common-table-expression

with子句如何在SQL Server中工作?它真的能给我一些性能提升,还是只是帮助制作更易读的脚本?

什么时候使用它?with在开始使用之前,您应该了解哪些条款?

这是我正在谈论的一个例子:

http://www.dotnetspider.com/resources/33984-Use-With-Clause-Sql-Server.aspx

Cox*_*oxy 5

我不完全确定性能优势,但我认为在使用子查询导致子查询多次执行的情况下,它肯定会有所帮助.

除此之外,它绝对可以使代码更具可读性,并且还可以用于多个子查询将在不同位置剪切和粘贴相同代码的情况.

在使用它之前你应该知道什么?一个很大的缺点是,当您在视图中有CTE时,您无法在该视图上创建聚簇索引.这可能是一个很大的痛苦,因为SQL Server没有物化视图,并且之前肯定咬过我.