假設我有此查詢如何使OPENROWSET工作,sp_MSforeachdb
declare @sql varchar(max)
SET @sql = 'USE [?];
insert into table
SELECT *
FROM OPENROWSET(''SQLNCLI'',
''Server=SERBERNAME;Trusted_Connection=yes;'',
''SET FMTONLY OFF; SET NOCOUNT ON; exec db_name().dbo.sp_procedure''
) '
EXEC sp_MSforeachdb @sql
正如你所知道sp_MSforeachdb
用於所有數據庫的運行中的程序。 在上面的問題中,由於很多原因,我必須使用OPENROWSET
。
但是,在OPENROWSET
中,您必須指定db名稱,以便其正確運行。我怎樣才能使上面的每一個數據庫工作(使用某種方式db_name()
)?
目前的錯誤是:
OLE DB提供程序 「SQLNCLI10」 鏈接服務器 「(空)」 返回了消息 「延遲準備,無法完成。」
/你正試圖循環中的所有數據庫的服務器,那麼爲什麼你需要OPENROWSET? –
@KannanKandasamy,剛剛更新後。我想從SP中插入表格內容。如果我執行insert..exec,則會拋出無法執行嵌套insert..exec的錯誤。所以,我試圖在這裏使用OPENROWSET – Sher