2010-08-02 69 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位驅動程序沒有問題

相關問題