我尝试使用OPENQUERY从MySQL获取一些数据,但我需要将结果放入临时表中进行操作。
我尝试了几个示例,但得到了相同的错误:
DECLARE @lastid int = (SELECT MAX(remoteid) FROM cdr)
DECLARE @TSQL varchar(8000)
SELECT @TSQL = 'SELECT * FROM OPENQUERY([PBXA_MYSQL],''SELECT * INTO #tempcdr FROM asterisk.cdr WHERE id > ''''' + CAST(@lastid as varchar(50)) + ''''''')'
EXEC (@TSQL)
SELECT * FROM #tempcdr无法从链接服务器"PBXA_MYSQL“的OLE DB访问接口"MSDASQL”获取列信息。
普通的select可以很好地工作,但是select into有这个错误。
谢谢
发布于 2018-06-01 21:36:46
您将OPENQUERY的结果存储到远程服务器上的临时表中,而不是本地服务器上。此外,临时表仅存在于该会话中,作为本地临时表,您需要将其设置为全局表
要获得结果,您需要将查询更改为:
DECLARE @lastid int = (SELECT MAX(remoteid) FROM cdr)
DECLARE @TSQL varchar(8000)
SELECT @TSQL = 'SELECT * INTO ##tempcdr FROM OPENQUERY([PBXA_MYSQL],''SELECT * FROM asterisk.cdr WHERE id > ''''' + CAST(@lastid as varchar(50)) + ''''''')'
EXEC (@TSQL)
SELECT * FROM ##tempcdrhttps://stackoverflow.com/questions/49112633
复制相似问题