我確定答案就在我的臉上,但我似乎無法找到一個好辦法來做到這一點。拆分並將字符串插入數據庫
我有一個字符串包含很多的值全部由,
分隔。我從來不知道(在運行之前)該字符串中會有多少個值。我想將它們插入到數據庫中(在本例中爲SQL Server 2008),但字符串對於NVARCHAR(MAX)
可能太大,所以我創建了臨時表並希望在其中插入值。
我可以很容易地做這樣的事情(我會做出一個小的例子):
VB
myString = "101,102,103,104,105,106,107,108,109"
For Each value As String in myString.Split(",")
myCommand.CommandText = "INSERT INTO tempTable VALUES @value"
myCommand.Parameters.AddWithValue("@value", value)
Next
C#
myString = "101,102,103,104,105,106,107,108,109";
foreach (string value in myString.Split(','))
{
myCommand.CommandText = "INSERT INTO tempTable VALUES @value";
myCommand.Parameters.AddWithValue("@value", value);
}
但是讓我們面對它,這是不是這樣做的方式。如果我有8000條記錄,會導致8000個不同的插入,我甚至可能會因爲考慮這樣做而被解僱。
有人能指出我在正確的方向嗎?
TL;博士
字符串值這個樣子「001,002,003,004,005 ...... 8000」我怎麼可以插入每個由,
分隔值未做8000個INSERT
語句。
您是否考慮過將數字寫入文本文件,然後使用bcp.exe或'BULK INSERT'導入該文件?或者直接使用SqlBulkCopy API。 – Pondlife 2013-05-03 13:25:52
但是,您究竟希望**將它們存儲在數據庫中? – 2013-05-03 13:26:02
@Pondlife我必須承認我對任何一種解決方案都不熟悉。我會看看BULK Insert謝謝! – phadaphunk 2013-05-03 13:27:21