【发布时间】:2016-02-21 21:13:45
【问题描述】:
我正在尝试在传递查询中使用参数问题是当我设置语句时我得到
“+”附近的语法不正确。期待')'
我以前做过这个,所以我不确定我现在做错了什么。我已经缩短了下面的查询以给出要点。
DECLARE @WORK_DATE AS VARCHAR(20)
SET @WORK_DATE = '20160210'
SELECT * FROM OPENQUERY(DATA_BASE_1,
'SELECT EMPLOYEE.EMPLOYEE_NUMBER AS EMPLOYEE_ID
FROM TABLE_1 EMPLOYEE
LEFT JOIN TABLE_2 PERSON
ON EMPLOYEE.EMPLOYEE_NUMBER = PERSON.EMPLOYEE_NUMBER
AND PERSON.WORK_DATE = '''''+ @WORK_DATE + '''''')
【问题讨论】:
-
您不能在
OPENQUERY中使用变量。尝试使用动态 SQL。例如DECLARE @WORK_DATE AS VARCHAR(20) SET @WORK_DATE = '2002-11-21 00:00:00' DECLARE @SQL NVARCHAR(MAX) = 'SELECT * FROM OPENQUERY(Database1, ''SELECT EMPLOYEE.EMPLOYEE_NUMBER AS EMPLOYEE_ID FROM TABLE_1 EMPLOYEE LEFT JOIN TABLE_2 PERSON ON EMPLOYEE.EMPLOYEE_NUMBER = PERSON.EMPLOYEE_NUMBER AND PERSON.WORK_DATE =''''' + @WORK_DATE + ''''''')' EXEC(@SQL)
标签: sql-server openquery