2014-06-23 108 views
0

我必須從一個SQL Server(位於遠程機器上的其他域上的遠程機器上,我可以從其中導入VARBINARY(MAX)格式的表數據通過RDP連接連接)到我的本地盒子。從遠程SQL Server(其他域)向本地SQL Server導入VARBINARY(MAX)列數據

我沒有嘗試的方法,通過套管列VARCHAR(MAX),但導入後的數據B是得到改變

任何幫助

感謝 阿圖爾

+0

Atul是否直接使用導入導出嚮導連接源和目標SQL Server?或將數據導出到TXT文件,然後使用導入\導出嚮導導入本地服務器? – knkarthick24

+0

我做了簡單的選擇,輸出到文件將數據放入txt文件,然後使用批量插入SQL命令將數據導回sql服務器 –

+0

您可以分享您使用的BULK INSERT SQLCODE嗎? – knkarthick24

回答

0
將數據從源到txt文件導出

Atul請嘗試以下步驟,而不是將SELECT指向輸出文件

1)使用導入/導出嚮導將數據導出到遠程計算機中的平面文件(使用|分隔符)。使用嚮導選項中的SAME SELECT語句(寫入查詢以指定要傳輸的數據)。

2)使用平面文件作爲源和本地服務器作爲導入/導出嚮導中的目標導入數據。

將TEXT數據類型轉換爲Varbinary(max)時要謹慎。
TEXT-> VARCHAR(MAX) - > VARBINARY(MAX)。
請參閱下面的截圖以便更好地理解。 Whtever您在文本數據類型的列有數據應該到目標表中列有VARBINARY(MAX)數據類型

enter image description here

+0

在這種情況下,它也會給出錯誤 錯誤0xc0208030:數據流任務1:「目標 - result_new_txt.Inputs [平面文件目標輸入] .Columns [Col2 ]「是DT_IMAGE,不支持。改爲使用DT_TEXT或DT_NTEXT,並使用數據轉換組件將數據從DT_IMAGE轉換爲DT_IMAGE。 (SQL Server導入和導出嚮導) –

+0

類似的情況我遇到過一次我如何解決的是,我創建了一個與目標表結構相同的中間表,除了使用TEXT Datatype的VARBINARY(MAX)數據類型列。我從TXT文件導入數據到該中間表。然後,你需要的是直接從中間錶轉移到目標表(它不是一個通用的解決方案) – knkarthick24

+0

如果我們這在同一臺服務器上的數據看起來不錯但只要你將這些數據導出到文本文件或其他東西然後導入,然後二進制數據得到改變。我也試過這個。 對不起,爲難的人 –

1

您可能需要使用BCP嘗試。

這是一個CLI實用程序,用於將數據從SQL Server導入/導出到作爲SQL Server安裝一部分的文件中。如果我需要從SQL Server備份圖表,我傾向於使用它。 它將適用於VARBINARY列類型。

示例: 要導出:

C:\TARGET_DIR>bcp [MyDatabaseName].dbo.MyTableName out MyTableName.bcp -c -T -S localhost 

要導入:

C:\TARGET_DIR>bcp [MyDatabaseName].dbo.MyTableName in MyTableName.bcp -c -T -S localhost 

NB

  • 的文件將被導入或從這些示例中的當前目錄導出。
  • 將[MyDatabaseName] .dbo.MyTableName更改爲您的databasename.your模式名稱。您的表名
  • 將localhost更改爲您的服務器名稱
  • 如果使用-c作爲文件存儲格式時出現問題,並且您是管理員,請嘗試使用-n(純模式)。

請參閱本文頂部的鏈接瞭解完整的CLI參考資料以及更多示例。

相關問題