关键字'with'... previous语句附近的语法不正确必须以分号结束

Dun*_*can 35 sql t-sql sql-server sql-server-2005 common-table-expression

我使用的是SQL Server 2005.我的存储过程中有2个WITH子句

WITH SomeClause1 AS
(
  SELECT ....
)
WITH SomeClause2 AS
(
  SELECT ....
)
Run Code Online (Sandbox Code Playgroud)

但是错误发生了

关键字'with'附近的语法不正确.如果此语句是公用表表达式或xmlnamespaces子句,则必须以分号结束前一个语句.

我有什么选择?有什么分配器我不知道吗?

gbn*_*gbn 65

使用逗号分隔CTE

;WITH SomeClause1 AS
(
  SELECT ....
)
, SomeClause2 AS
(
  SELECT ....
)
Run Code Online (Sandbox Code Playgroud)


KM.*_*KM. 15

忘记添加";" 到前面的语句,就像错误消息所说的那样.只是习惯于总是将它编码为:"; WITH",你会很好......

;WITH SomeClause1 AS
(
  SELECT ....
)
Run Code Online (Sandbox Code Playgroud)

但是,您必须使用逗号连接多个CTE,但"; WITH"在它之前始终有一个分号:

;WITH SomeClause1 AS
(
  SELECT ....
)
,SomeClause2 AS
(
  SELECT ....
)
Run Code Online (Sandbox Code Playgroud)