在 SQL 中出现 AS 错误

Sma*_*EGA 1 sql t-sql sql-server sql-server-2005

我收到如下所示的错误:

Msg 156, Level 15, State 1, Procedure Sp_Table1, Line 22
Incorrect syntax near the keyword 'AS'.
Run Code Online (Sandbox Code Playgroud)

执行此 SQL 时:

WITH myCTE AS
(Select mci.* from
view_name AS si
JOIN merch_catalog_ipt_view_name AS mci
  ON mci.view_id = si.view_id
  AND mci.resolved_view_name_id = si.view_name_id
  AND mci.ctg_ipt_event_id = @ctg_ipt_event_id
  AND mci.accept_flag = 'y')

UPDATE view_name
SET name = (select mci.name from myCTE where myCTE.view_id = view_id)
,view_name_ctg_id = (select mci.resolved_view_name_ctg_id from myCTE where myCTE.view_id = view_id)
,xref_value = (select mci.xref_value from myCTE where myCTE.view_id = view_id)
,availability_start_date = (select mci.availability_start_date from myCTE where myCTE.view_id = view_id)
,availability_end_date = (select mci.availability_end_date from myCTE where myCTE.view_id = view_id)
,status_code = (select mci.status_code from myCTE where myCTE.view_id = view_id)
,last_modified_user_id = (select CASE WHEN mci.last_modified_user_id = 42 THEN @posting_user_id ELSE mci.last_modified_user_id END from myCTE where myCTE.view_id = view_id)
,last_modified_timestamp = CURRENT_TIMESTAMP
WHERE si.shi_flag = 'n'
and exists (select view_id from merch_catalog_ipt_view_name AS mci
  Where mci.view_id = view_name.view_id
  AND mci.resolved_view_name_id = view_name.view_name_id
  AND mci.ctg_ipt_event_id = @ctg_ipt_event_id
  AND mci.accept_flag = 'y')
Run Code Online (Sandbox Code Playgroud)

请帮忙

Aak*_*shM 5

尝试;在你的WITH,之前放一个分号

当 CTE 用于作为批处理的一部分的语句中时,它之前的语句必须后跟一个分号。

过去这让我很不爽。