SQL Server Job - "order"附近的语法不正确。[SQLSTATE 42000](错误 102)



以下代码在试运行中执行时运行良好,没有出现错误。当我使用此代码在SQL Server上安排作业时,会收到以下错误Incorrect syntax near 'order'. [SQLSTATE 42000] (Error 102)

Order是一个函数,但inc表有一个同名的列,为了让SQL Server将其视为列名,我用双代码将该名称括起来

代码

DECLARE @Temp TABLE (
[closed_at] smalldatetime,
[number] varchar(40),
[opened_at] smalldatetime,
[order] int
)
DECLARE @SQLString nvarchar(max);
SET @SQLString = 'SELECT * FROM OPENQUERY(SERVICENOW, ''SELECT 
closed_at,
number,
opened_at,
"order"
FROM incident
WHERE opened_at BETWEEN ''''2019-01-01 00:00:00'''' and ''''2019-02-01 23:59:59''''; '')';
INSERT @Temp ( 
closed_at,
number,
opened_at,
"order"
)
EXECUTE(@SQLString);

UPDATE dbo.inc
SET
closed_at = cte.closed_at,
number = cte.number,
opened_at = cte.opened_at,
"order" = cte."order"
FROM
dbo.inc inc
INNER JOIN @Temp cte on cte.number = inc.number
WHERE isnull(cte.sys_updated_on,'') <> ISNULL(inc.sys_updated_on,'')

对于SQL Server,用[order]替换所有"order";对于PostgreSQL,在列名周围使用双引号"

相关内容

最新更新