2013-10-22 77 views
2

我有一個龐大的數據庫,我想使用BCP轉儲出來,然後將它加載到別處。我已經對Sybase版本的BCP(更熟悉MSSQL版本)做了相當多的研究,並且看到如何使用導入文件,但我無法弄清楚如何創建導入文件。如何生成Sybase BCP Fmt文件?

我目前做我的Sybase BCP出來的數據文件是這樣的:

bcp mytester.dbo.XTABLE out XTABLE.bcp -U sa -P mypass -T -n 

,並試圖將其重新導入像這樣:

bcp mytester.dbo.XTABLE in XTABLE.bcp -E -n -S Sybase_157 -U sa -P SyAdmin 

眼下,部分給了我關於IDENTITY_INSERT的錯誤,無論表是否具有標識:

服務器消息:Sybase157 - 消息7756,等級16 ,狀態1:由於 表沒有標識屬性,因此無法使用 'SET IDENTITY_INSERT'作爲表'mytester.dbo.XTABLE'。

我經常用這個頁面的幫助上偉大的信息,但是這是第一次我把一個問題已經,所以我謙卑地請求任何指導,你都可以提供:)

回答

1

在你的BCP in,-E標誌告訴bcp從輸入文件獲取標識列值。我會試着運行它沒有這個標誌。 Sybase中的fmt文件有點挑剔,如果可能,我會盡量避免。所以,只要你的架構是你的系統之間的相同下面的命令應該工作:

bcp mytester.dbo.XTABLE in XTABLE.bcp -n -S Sybase_157 -U sa -P SyAdmin 

此外,-T標誌在你的BCP出來似乎有些奇怪。我知道SQLServer -T是一種安全設置,但在Sybase中它指示文本或圖像列的最大大小,並且後面跟着一個數字。例如-T 32000(將是32K字節)

但要回答問題您的標題,如果您以交互方式運行bcp(無需指定-c-n-f),它將遍歷每列,提示輸入信息。最後它會詢問你是否要創建一個格式文件,並允許你指定文件的名稱。

僅供參考,這裏是語法和可用的標誌:實用程序指南中 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1550/html/utility/X14951.htm

而章: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1550/html/utility/BABGCCIC.htm

+0

這似乎這樣的伎倆,我也只好跑:sp_dboption命令mytester, 'select into/bulkcopy',true爲了允許bcp插入,但在此之後,它是黃金!非常非常喜歡邁克爾。我會對你的評論做+1,但我是新的,它不會讓我:) – Beatscribe

+0

Np,很高興提供幫助。 –