2010-08-02 41 views
0

以下是一些在32位机器(SQL Server 2005)中正常工作的示例代码,需要针对64位机器进行更新有点...我知道这是一个常见的问题,但一直没能找到如何解决它!从32位移动到64位,如何使链接服务器(sp_addlinkedserver)工作

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='[email protected]+''', [Sheet1$])') 
    SELECT @testRows = @@ROWCOUNT, @totalRows = @totalRows + @@ROWCOUNT 
    END 

我想出来的另一件事情是从表中创建的.fmt文件,使用bcp实用工具,这样我就可以定义正在读取的文件的格式。

任何帮助将不胜感激!

+0

可能的重复[从32位移动到64位机器,如何使链接的服务器工作](http://stackoverflow.com/问题/ 3389510 /从32位移动到64位机器如何使链接服务器工作) – 2010-08-02 18:56:22

+0

嗨, 是的,这是一个重复的,我不知道如何删除前一个! 我想知道是否有办法在64位机器上执行sp_addlinkedserver系统过程来传递上述参数。 我试图获得Excel数据(sourceFile)并将结果放在一个表中,比如说'TableTest' 我对此很新,所以可能我的问题很模糊,希望这个评论能让它更清晰。 感谢您的帮助! – Amy 2010-08-02 19:43:42

回答

0

我认为Excel仍然只有一个32位驱动程序。所以我不知道你是否能够使用该驱动程序的链接服务器。

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

相关问题