如遇到CALL 遠端(LINK DB)的SP,收其產生的結果集,出現以下錯誤訊息
SAMPLE CODE:
IF OBJECT_ID (N'tempdb..#REL', N'U') IS NOT NULL
DROP TABLE #REL
create table #REL
(
COL1 varchar(50) NOT NULL
,COL2 varchar(50) NULL
)
insert into #REL
exec [1.2.3.4].XXDB.dbo.[SP_QryRM]
解法1:
【Windows】啟用 MSDTC 服務與相關設定https://dotblogs.com.tw/echo/2017/08/24/windows_msdtc_setting
需要開很多PORT,調系統設定及重開機,超麻煩的。
解法2:
設定LINK DB,啟用RPC的分散式交易促銷設為FALSE
解法3:
OPENROWSET,可是在SQL 2016可能會有問題?
IF OBJECT_ID('tempdb..#tmp') IS NOT NULL
DROP TABLE #tmp
GO
CREATE TABLE #tmp (
APPLY_HOUSE_SEQNO varchar(30),
APPNO varchar(30)
)
INSERT INTO #tmp
SELECT *
FROM OPENROWSET('SQLOLEDB','1.2.3.4,1433';'ID';'PWD','SET FMTONLY OFF; EXEC XXDB.dbo.SP_ONLINE_888')
select * from #tmp