我编辑一个包含双openquery
的查询。但是在此查询中,我需要添加一个参数。因为我从未使用过SQL Server,所以不知道如何在查询中添加此参数。
查询如下:
SELECT *
FROM openquery([1STCONNECTOR],'
SELECT *
FROM openquery([2NDCONNECTOR],''
SELECT *
FROM table
WHERE field = ''''PARAM'''''
)'
)
首先,我尝试过:
SELECT *
FROM openquery([1STCONNECTOR],'
SELECT *
FROM openquery([2NDCONNECTOR],''
SELECT *
FROM table
WHERE field = ''''' + @PARAM + '''''
)'
)
但是它不起作用。
然后,我尝试将查询分开:
SET @query = 'SELECT *
FROM table
WHERE field = ' + @PARAM + ')'
SELECT *
FROM openquery([1STCONNECTOR],'
SELECT *
FROM openquery([2NDCONNECTOR],'''+ @VAR +''')')
但是它也不起作用。
返回的错误与以下语法有关:
Unexpected "+", expected ")"
另一种尝试,类似于先前的尝试:
SET @query1 = 'SELECT * FROM openquery([2NDCONNECTOR],' + @query2 + ')'
SET @query2 = 'SELECT * from BPCS61F.ITH WHERE field = ' + @PARAM + ')'
SELECT * FROM openquery([1STCONNECTOR], @query1)
在这里,错误出现在第三个查询上,然后说:
Syntax error close of "@query1". Expected STRING, or TEXT_LEX
@query1
和@query2
均为varchar(max)
很抱歉,如果语法不符合SQL Server语言的约定,我正在学习。
谢谢你, 扫罗