无法在链接服务器OLE DB提供程序“MSDASQL”

时间:2016-10-14 11:55:05

标签: sql-server sap linked-server hana

我试图在SQL Server中的链接服务器(基于HANA)上执行以下简单语句:

UPDATE HANASERVER.."SAP_WORKSHOP"."CUSTOMER"
 SET "CUSTOMER_ID"='3' 
WHERE "CUSTOMER_NAME"='John'

不幸的是,服务器检索以下错误消息,拒绝该事务:

 The OLE DB provider "MSDASQL" for linked server "HANASERVER" could not UPDATE table "[HANASERVER]..[SAP_WORKSHOP].[CUSTOMER]" 

SELECT *是可行的,因此连接已经过测试和运行。

任何人都知道这个问题的任何工作方法吗?

谢谢你, 路易

编辑:我忘了告诉我使用服务器作为SYSTEM用户,所以我真的有权在其上做所有事情,但遗憾的是仍然没有工作。

编辑:我按照以下步骤定义了链接服务器:

EXEC sp_addlinkedserver 
@server = 'HANASERVER', --description
@srvproduct = 'HANA_TEST',  --description
@provider = 'MSDASQL',  --Microsoft's OLE DB provider (FIXED NAME)
@datasrc = 'HANA_TEST'  --ODBC System DSN (OUR CONFIGURED SYSTEM DSN)

EXEC sp_addlinkedsrvlogin   
@useself= 'FALSE',  
@rmtsrvname = 'HANASERVER', --description
@locallogin = NULL, 
@rmtuser = 'SYSTEM',    --HANA User
@rmtpassword = 'XXXXXXXX'   --HANA Pswd
编辑:我目前正在系统和链接服务器所在的远程服务器上使用SSMS。但仍无法解决问题。我正在尝试从查询窗口执行查询。 :)

1 个答案:

答案 0 :(得分:0)

如果您确认为链接服务器定义指定的用户具有更新表的适当权限,请尝试使用此语法:

update [linked-server].dbname.dbo.tablename
...
where
...

还尝试更新如下,特别是@provider选项:

EXEC sp_addlinkedserver     
   @server=N'S1_instance1',   
   @srvproduct=N'',  
   @provider=N'SQLNCLI',   
   @datasrc=N'S1\instance1'; 

MSDN LINKED SERVER SPEC

已更新

检查TCP / IP和命名管道协议和端口。打开SQL Server配置管理器并检查SQL Server网络配置协议。您应该启用命名管道和TCP / IP协议。

我想我忘记了登录文件:

EXEC master.dbo.sp_addlinkedserver @server = N'SQL1', @srvproduct=N'SQL Server'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SQL1',@useself=N'False',@locallogin=NULL,@rmtuser=N'linkeduser',@rmtpassword='########'