我試圖從.csv文件轉儲一個非常大的一組數據到SQL Server 2012數據庫。我正在調查bcp
,而不是做數千個INSERT。BCP返回沒有錯誤,但也不復制任何行
編輯:這是一個自動化過程,而不僅僅是一次性。我也沒有這個數據庫的BULK INSERT
權限。
當我嘗試將數據複製到數據庫中時,bcp
不會返回任何錯誤,但實際上也不會複製任何內容 - 它僅返回0 rows copied
。我已經減少了這個不起作用的最小情況。
首先,創建一個簡單的表有兩列:
CREATE TABLE [dbo].[mincase](
[key] [varchar](36) NOT NULL,
[number] [int] NOT NULL
PRIMARY KEY CLUSTERED
(
[key] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 40) ON [PRIMARY]
) ON [PRIMARY]
GO
然後,使用bcp
創建此格式文件。請注意,這個例子創建了一個XML格式的文件,但不管它是XML還是原生的。
bcp MyDB.dbo.mincase format nul -T -n -f mincasexml.fmt -x -S .\SQLEXPRESS
現在創建一個data.csv文件,其中包含一行和兩個條目,以製表符分隔。在我的情況下,該文件就是:
somecharacters 12345
再次,這是一個標籤,而不是兩個空格,這似乎並不重要,是否有尾隨換行還是不行。
現在嘗試使用bcp
與格式文件,從這個文件中插入數據:
bcp MyDB.dbo.mincase in data.csv -f mincasexml.fmt -T -S .\SQLEXPRESS
而不是複製數據到數據庫中,我得到這個:
Starting copy...
0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 1
有誰知道這裏發生了什麼?
謝謝!
您是否嘗試了導入數據選項? – 2013-04-30 22:15:28