我正在調用OpenQuery
中的存儲過程並將參數傳遞給存儲過程。在OpenQuery中調用參數化存儲過程 - SQL Server 2008
declare @Src nvarchar(max),@Tgt nvarchar(max)
declare @sql_str nvarchar (4000)
set @Src = '$\VMT\Versions\0900\AMS\'
set @Tgt = '$\VMT\Versions\0900\Base\'
set @sql_str = 'exec [Tfs_VMT Collection].dbo.MergeCandidate ''' + @Src+ ''' , ''' [email protected]+''' '
set @sql_str = 'select * into #test from openquery(ODSSERVER,''' +Replace(@sql_str,'''', '''''') +''')'
print @sql_str
EXEC (@sql_str)
但這種失敗,以下錯誤
消息7357,級別16,狀態2,行1
無法處理對象「執行[Tfs_VMT 收藏] .dbo.MergeCandidate「$ \ VMT \ Versions \ 0900 \ AMS \', '$ \ VMT \ Versions \ 0900 \ Base \'「。 鏈接服務器「ODSSERVER」的OLE DB提供程序「SQLNCLI10」指示對象沒有 列或當前用戶沒有該對象的權限。
我檢查了這與權限無關。
你能幫忙嗎?
因此,您嘗試使用GRANT EXEC存儲過程,這不會有幫助嗎? – sll
您可以取得Print @sql_str的值併成功運行它嗎? – JeffO
沒有它給出了相同的錯誤 – Anirudh