【问题标题】:Moving from 32-bit to 64-bit, how to make linked server (sp_addlinkedserver) work从 32 位迁移到 64 位,如何使链接服务器 (sp_addlinkedserver) 工作
【发布时间】:2010-08-02 16:25:41
【问题描述】:

这里有一些示例代码在 32 位机器(SQL server 2005)上运行良好,需要更新为 64 位...我知道这是一个常见问题,但无法找到如何修复它!

    DECLARE @sourceFile varchar(255), @testRows int

  SELECT @sourceFile = @xmlInfo.value('(/SelectFile/DataSource)[1]', 'VARCHAR(100)')
  EXEC sp_addlinkedserver 'SomeData', 'Excel', 'Microsoft.Jet.OLEDB.4.0', @sourceFile, '', 'Excel 8.0', ''

   IF @xmlInfo.exist('/SelectFile/DataSource') = 1
   BEGIN
    EXEC(' INSERT INTO TableTest
      SELECT col1_Id, col2, Replace(col3, '' '', '''')
      FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
          ''Excel 8.0;HDR=Yes;Database='+@sourceFile+''', [Sheet1$])')
     SELECT @testRows = @@ROWCOUNT, @totalRows = @totalRows + @@ROWCOUNT
   END

我正在尝试的另一件事是使用 bcp 实用程序从表中创建一个 .fmt 文件,这样我就可以定义正在读取的文件的格式。

任何帮助将不胜感激!

【问题讨论】:

  • 嗨,是的,这是重复的,我不知道如何删除以前的!我想知道是否有一种方法可以在 64 位机器上执行 sp_addlinkedserver 系统过程以工作,并传递上述参数。我正在尝试获取 Excel 数据(sourceFile)并将结果放在表格中,比如“TableTest”我对此很陌生,所以我的问题可能很模糊,希望这个评论让它更清楚一点。感谢您的帮助!

标签: sql-server sql-server-2008 linked-server bcp openrowset


【解决方案1】:

我认为 Excel 仍然只有 32 位驱动程序。所以我不知道您是否可以使用该驱动程序使用链接服务器。

最好的办法是使用导入数据向导导入数据并保存数据包(向导中的最后一步),然后您可以重新运行数据包以刷新数据。客户端工具都是32位的,所以使用32位驱动没有问题

【讨论】:

    猜你喜欢
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 2011-09-12
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多