I use SQL Server 2022 CU3 and Target is SQL Server 2017 CU14.
I stuck in the OPENROWSET.
I check openrowset query success on SQL Server 2022 when i direct call.
like this.
SELECT * FROM OPENROWSET('SQLOLEDB','10.10.10.10,1433';'TestUser';'TestUser@@', 'SELECT @@VERSION')
Microsoft SQL Server 2017 (RTM-CU14) (KB4484710) - 14.0.3076.1 (X64) Mar 12 2019 19:29:19 Copyright (C) 2017 Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor)
But i have to replace ip, port into variable.
So I changed it Declare / Set / Exec. But SQL Server return 7202 error.
How should I fix about this.
declare @sql nvarchar(max)
SET @sql = 'SELECT * FROM OPENROWSET(''SQLOLEDB'','''+@ip+','+@port+''';''TestUser'';''TestUser@@'', ''SELECT @@VERSION'')'
EXEC @sql
go
메시지 7202, 수준 11, 상태 2, 줄 7
sys.servers에서 서버 'SELECT * FROM OPENROWSET('SQLOLEDB',
'10'을(를) 찾을 수 없습니다. 올바른 서버 이름이 지정되었는지 확인하십시오. 필요하면 저장 프로시저 sp_addlinkedserver를 실행하여 sys.servers에 서버를 추가하십시오.
Even though I don't use variable but the result same.
declare @sql nvarchar(max)
set @sql = 'SELECT * FROM OPENROWSET(''SQLOLEDB'',
''10.10.10.10,1433'';''TestUser'';''TestUser@@'',
''SELECT @@VERSION'')'
print(@sql)
EXEC @sql
go
메시지 7202, 수준 11, 상태 2, 줄 7
sys.servers에서 서버 'SELECT * FROM OPENROWSET('SQLOLEDB',
'10'을(를) 찾을 수 없습니다. 올바른 서버 이름이 지정되었는지 확인하십시오. 필요하면 저장 프로시저 sp_addlinkedserver를 실행하여 sys.servers에 서버를 추가하십시오.
1条答案
按热度按时间uz75evzq1#
use SET QUOTED_IDENTIFIER OFF and double quotes