2011-10-12 40 views
15
INSERT INTO pantscolor_t (procode,color,pic) 
VALUES 
('74251', 'Black', '511black.jpg'), 
('74251', 'OD Green', '511odgreen.jpg'), 
('74251', 'Black', '511black.jpg'), 
('74251', 'OD Green', '511odgreen.jpg'), 
('74251', 'Black', '511black.jpg'), 
('74251', 'OD Green', '511odgreen.jpg'), 
.......... 
.......... 
.......... 

INSERT INTO pantscolor_t (procode,color,pic) 
VALUES 
('74251', 'Charcoal', '511charcoal.jpg'), 
('74251', 'Charcoal', '511charcoal.jpg'), 
('74251', 'Charcoal', '511charcoal.jpg'), 
('74251', 'Charcoal', '511charcoal.jpg'), 
............. 
............. 
............. 

INSERT INTO........................ 
INSERT INTO........................ 
INSERT INTO........................ 
INSERT INTO........................ 

我有100000這樣的行,但我的插入語句大於1000行。當我在SSMS上運行sql時,它會給我一個錯誤:「INSERT語句中行值表達式的數量超過了1000個行值的最大允許值。」如何插入100000行到MSSQL?

回答

15

創建csv文件(或某些帶有已定義的字段分隔符和行分隔符的文件)並使用「BULK INSERT」選項將文件加載到數據庫。文件可以有100000行;使用批量上傳加載大文件不會有任何問題。

http://msdn.microsoft.com/en-us/library/ms188365.aspx

+0

+1從代碼,你可以使用[SqlBulkCopy](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx)類 – Andomar

+0

我有一個sql文件它來自mysl與出口... – mekar10

+0

然後我猜;它將很容易轉換成CSV文件。 – Bala

8

另一種解決方案是使用與工會選擇查詢。

INSERT INTO pantscolor_t (procode,color,pic) 
SELECT '74251', 'Black', '511black.jpg' 
UNION ALL SELECT '74251', 'OD Green', '511odgreen.jpg' 
UNION ALL SELECT '74251', 'Black', '511black.jpg' 
UNION ALL SELECT '74251', 'OD Green', '511odgreen.jpg' 
UNION ALL SELECT '74251', 'Black', '511black.jpg' 
UNION ALL SELECT '74251', 'OD Green', '511odgreen.jpg' 
--etc.... 

UNION ALL代替UNION爲了與成千上萬的記錄打交道時,加快查詢。 UNION ALL允許重複行,而UNION將確保重複項不存在於結果集中。對於這種情況,我們不想刪除任何可能的重複,因此使用UNION ALL

0

,由以下你不應該有任何錯誤:

INSERT INTO pantscolor_t (procode,color,pic) VALUES ('74251','Black','511black.jpg') 

INSERT INTO pantscolor_t (procode,color,pic) VALUES ('74251', 'OD Green', '511odgreen.jpg') 

INSERT INTO pantscolor_t (procode,color,pic) VALUES ('74251', 'Black', '511black.jpg') 

INSERT INTO pantscolor_t (procode,color,pic) VALUES ('74251', 'OD Green', '511odgreen.jpg') 

INSERT INTO pantscolor_t (procode,color,pic) VALUES ('74251', 'Black', '511black.jpg') 

........... 

我想它和它的工作,當然你也可以使用Excel輕鬆串連值。