链接服务器上的表我有两台服务器: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你不知道该从哪里出发。我在某处看到这个错误与更新查询没有返回一行有关。有没有道理呢?
我该如何解决这个问题?
谢谢