使用链接服务器执行远程SQL脚本

时间:2016-02-01 09:26:34

标签: sql sql-server

我在名为“workgroup”的工作组中有2台服务器。

  • 服务器A是SQL Server 2012的W2012R2
  • 服务器B与其他应用程序W2012R2。 SQLCMD Utility已安装在服务器B上。

我正在使用本地帐户,SQL服务是从本地帐户开始的。我可以从B连接到SQL服务器到A.我可以毫不费力地启动查询。当我启动我的SQL脚本时,我收到以下错误:

E:\Batch\Script>sqlcmd -S YMSQL01 -i test.sql
  

将数据库上下文更改为“PROD”。

     

Msg 7399,Level 16,State 1,   服务器YMSQL01,过程V_C_Prod,第3行OLE DB提供程序   链接服务器“C_PROD”的“Microsoft.ACE.OLEDB.12.0”报告了一个   错误。提供商未提供有关错误的任何信息。

     

消息7303,级别16,状态1,服务器YMSQL01,过程V_C_Prod,第3行   无法初始化OLE DB提供程序的数据源对象   链接服务器“C_PROD”的“Microsoft.ACE.OLEDB .12.0”。

正如您所看到的,似乎我无法查询视图。此视图来自链接服务器,该服务器连接到Excel文件(位于服务器B上)。我在服务器B上安装了相同的ODBC驱动程序但是我得到了同样的错误。

我的SQL脚本:

Use PROD
Go

Merge dbo.conc  AS t
using V_C_Prod as s
ON (t.CodeComptable=s.[Code Comptable])
WHEN MATCHED THEN UPDATE SET
    t.[Marque]=s.[Marque]
    ,t.[CodeHolding] = s.[Code HOLDING]
    ,t.[Email1]=s.[Email Principal]
    ,t.[CP]=s.[CP]
    ,t.[Ville]=s.[Ville]
WHEN NOT MATCHED 
THEN INSERT VALUES (
    s.[Marque]
    ,s.[Code HOLDING]
    ,s.[Code Comptable]
    ,s.[Email Principal]
    ,s.[CP]
    ,s.[Ville];
Go

我该如何解决这个问题?感谢您的支持。

0 个答案:

没有答案