运行SQL Server 2008.下面存储过程的每个部分都运行正常。存储过程最初只是插入语句有效。选择/删除的CTE也可以自行运行。
我正在将带有delete语句的CTE添加到存储过程以删除重复项,这样我就可以在开发期间尽可能多地运行,而不会在后续处理中获得重复项。
CREATE PROCEDURE db.sproc_name(@data nvarchar(max))
AS
BEGIN
DECLARE @doc AS INT
EXEC sp_xml_preparedocument @doc OUTPUT, @data
INSERT INTO db.the_table
SELECT *
FROM openxml(@doc, '/XPATH_STRING', 1)
WITH db.the_table
;WITH cte AS
(
SELECT
*, ROW_NUMBER() OVER (PARTITION BY DATE, CODE ORDER BY DATE) AS rn
FROM
db.the_table
)
DELETE FROM cte
WHERE rn > 1
END
运行create语句时出现此错误:
15:51:16 [错误代码...]'the_table'附近的语法不正确。
15:51:16 [错误代码...]'end'附近的语法不正确。
...执行了2个语句,0行受影响,执行/获取时间: 0.005 / 0.000秒[0成功,2错误]
已修改删除标识符中的引号。