鏈接服務器上的表我有兩臺服務器:SQLSERVER01
和SQLSERVER02
,我試圖以更新的數據上SERVER01
從SERVER02
(SERVER01
是鏈接服務器)。更新使用OPENQUERY
我的更新查詢當前的動態,看起來像這樣
DECLARE @SQL NVARCHAR(MAX)
DECLARE @ID INT
SET @ID = 1
Set @SQL = 'Update SERVER01.MyDatbase.dbo.MyTable
set ModifiedDate = GetDate(), SomeOtherValue = ''xyz''
Where Id = ' Convert(varchar(10), @ID)
如果我現在請
EXEC(@SQL)
有時會工作,但有時它只是掛在那裏的年齡,當我運行sp_active
我看到PREEMPTIVE_OLEDBOPS
。
所以,我然後使用打開查詢如下
Select *
From OpenQuery(SERVER01,
'Update SERVER01.MyDatbase.dbo.MyTable
set ModifiedDate = GetDate(), SomeOtherValue = ''xyz''
Where Id = 1')
嘗試,但我得到這個錯誤:
The OLE DB provider "SQLNCLI11" for linked server "SERVER01" indicates that either the object has no columns or the current user does not have permissions on that object.
當我運行下面的select查詢我成功返回我想要的行更新:
Select *
From OpenQuery(SERVER01,
'Select *
From SERVER01.MyDatbase.dbo.MyTable
Where Id = 1')
我知道運行該查詢的用戶有權限,但我reall你不知道該從哪裏出發。我在某處看到這個錯誤與更新查詢沒有返回一行有關。有沒有道理呢?
我該如何解決這個問題?
謝謝