向直通查询添加参数
Adding a parameter to a pass through query
我正在尝试在传递查询中使用参数问题是当我设置语句时我得到
Incorrect syntax near '+'. Expecting ')'
我以前做过,所以我不确定我现在做错了什么。我缩短了下面的查询以给出要点。
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 + '''''')
来自Transact-SQL OPENQUERY documentation:
Remarks
OPENQUERY does not accept variables for its arguments.
一种方法是将变量传递给存储要执行的查询的字符串,然后执行它。
DECLARE @SQL_TO_EXEC NVARCHAR(MAX), @WORK_DATE VARCHAR(20)
SET @WORK_DATE = '20160210'
SET @SQL_TO_EXEC = '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 + ''''''')'
EXEC (@SQL_TO_EXEC)
我正在尝试在传递查询中使用参数问题是当我设置语句时我得到
Incorrect syntax near '+'. Expecting ')'
我以前做过,所以我不确定我现在做错了什么。我缩短了下面的查询以给出要点。
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 + '''''')
来自Transact-SQL OPENQUERY documentation:
Remarks
OPENQUERY does not accept variables for its arguments.
一种方法是将变量传递给存储要执行的查询的字符串,然后执行它。
DECLARE @SQL_TO_EXEC NVARCHAR(MAX), @WORK_DATE VARCHAR(20)
SET @WORK_DATE = '20160210'
SET @SQL_TO_EXEC = '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 + ''''''')'
EXEC (@SQL_TO_EXEC)