sql批量插入數據
這種情況使用xml來進行批量插入.
1.asp.net頁面上抓取數據,轉換成xml字元串
2.將這個字元串作為參數傳給存儲過程
3.存儲過程里,將這個xml讀取成臨時表
4.整個臨時表插入到目標數據表中,這個過程可以使用sql
server的事務;其實在這里用不用事務問題都不大了,因為存儲過程出錯,數據插不進去的,還會拋出異常到asp.net後台,讓後台進行處理異常.
您用游標或asp.net代碼來循環,速度會比較慢的.
⑵ SQL批量插入數據
一、針對批量插入數據,如果量不是太多,可以多條SQL語句運行就可以了,
類似下面的語句,當然可以使用excel 編輯後,復制到查詢器中運行,
insert into table(a,b) values('1','a')
insert into table(a,b) values('2','b')
insert into table(a,b) values('3','c')
二、大量數批量插入,即數據表的移植,數據備份轉換之類的,就需要工具,比如MSSQL的DTS工具,pb的數據通道 等等。這里介紹一下 DTS工具。
⑶ 達蒙七批量導入SQL文件
打開SQLServer客戶端連接要操作的資料庫引擎右鍵要操作的資料庫,選擇任務--導入數據,點下一步,一般要導入的數據都是excel,數據源我們選擇MicrosofyExcel,瀏覽選擇要導入的excel文件,下一步選擇目標數據源選擇我們的SQLServer,根據需要一直點下一步,需要注意在選擇表和數據源頁面,根據實際需要選擇對應的表,以及編輯列的映射,最後點擊完成,導入數據。
也可以調用寫好的sql語句或存儲過程來循環的插入數據導資料庫,根據需要可以在讀取文件數據後,對數據進行校驗和加工。
⑷ 如何用SQL語句將數據批量插入資料庫
如果是sql server,用transaction sql寫;
如果是oracle,用pl/sql寫。
這兩種語法都可以寫一些邏輯語句,跟一些高級語言差不多,隨便搜一下就有介紹了。自己學學,不多講了。
用JDBC也可以,不過稍微麻煩點。用上面的方法可以直接在DBMS的客戶端運行,簡單直接。
--------------------------------------------
上面我說的,好像不太適合你這個問題。確實用JDBC(Java語言)或ODBC(C++)寫代碼能實現:循環讀文件裡面的每條數據,生成相應的sql語句,然後調用API寫入資料庫。
還有一個方法就是,用txt或excel保存數據,然後用sql server2000的企業管理器導入txt或excel文檔,你按著向導試試看。
⑸ 資料庫中我想要批量插入數據SQL語句怎麼寫。
批量插入不要用循環,直接sql語句就可以了:
insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
這樣就可以了,上面的sql批量了2條,以此類推,中間隔半形逗號即可。
我就暈了,你不會用程序處理啊,用一個array_map然後implode不久可以了嗎?
⑹ 怎樣用SQL向資料庫中批量的插入數據,主鍵是隨機生成的
代碼如下:
--創建測試表
CREATE TABLE [Identity](
Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--種子的起始值1,步長2
Number VARCHAR(20) UNIQUE NOT NULL,
Name VARCHAR(20) NOT NULL,
Password VARCHAR(20) DEFAULT(123),
Description VARCHAR(40) NULL
)
--插入記錄
INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因為起始值1')
INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因為起始值1,步長2')
INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由於字元長度超長,報錯插入失敗,造成此Id產生後被放棄')
INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因為第三條記錄插入失敗')
--檢索記錄,查看結果
SELECT * FROM [Identity]
⑺ FreeSql 教程 (六)批量插入數據
FreeSql 以 MIT 開源協議託管於 github: https://github.com/2881099/FreeSql
執行SQL如下:
當插入大批量數據時,內部採用分割分批執行的邏輯進行。分割規則如下:
分割執行後,當外部未提供事務時,內部自開事務,實現插入完整性。
FreeSql 適配了每一種數據類型參數化,和不參數化的使用。批量插入建議關閉參數化功能,使用 .NonoParameter() 進行執行(有關 NoneParameter 在後續文章介紹)。
⑻ mysql批量插入數據怎麼寫sql語句呢
如果就一個name欄位並且ID是自增的話就這樣
INSERT INTO tablename VALUES('name1','name2','name3','name4')
否則就這樣
INSERT INTO tablename VALUES(('1','name1'),('3','name2'),('2','name3'),('8','name4'))
當然也可以這樣寫,上面的是簡化的
INSERT INTO tablename (name)VALUES ('name1','name2','name3','name4')
INSERT INTO tablename (id,name) VALUES (('1','name1'),('3','name2'),('2','name3'),('8','name4'))
⑼ sqllite怎樣批量執行插入
private void btnOK_Click(object sender, EventArgs e)
{
string[] arrayItems = this.txtDictData.Lines;
int intSeq = -1;
int seqLength = 3;
string strSeq = this.txtSeq.Text.Trim();
if (int.TryParse(strSeq, out intSeq))
{
seqLength = strSeq.Length;
}
if (arrayItems != null && arrayItems.Length > 0)
{
DbTransaction trans = BLLFactory<DictData>.Instance.CreateTransaction();
if (trans != null)
{
try
{
#region MyRegion
foreach (string strItem in arrayItems)
{
if (this.radSplit.Checked)
{
if (!string.IsNullOrWhiteSpace(strItem))
{
string[] dataItems = strItem.Split(new char[] { ',', ',', ';', ';', '/', '、' });
foreach (string dictData in dataItems)
{
#region 保存數據
string seq = "";
if (intSeq > 0)
{
seq = (intSeq++).ToString().PadLeft(seqLength, '0');
}
else
{
seq = string.Format("{0}{1}", strSeq, intSeq++);
}
InsertDictData(dictData, seq, trans);
#endregion
}
}
}
else
{
#region 保存數據
if (!string.IsNullOrWhiteSpace(strItem))
{
string seq = "";
if (intSeq > 0)
{
seq = (intSeq++).ToString().PadLeft(seqLength, '0');
}
else
{
seq = string.Format("{0}{1}", strSeq, intSeq++);
}
InsertDictData(strItem, seq, trans);
}
#endregion
}
}
#endregion
trans.Commit();
ProcessDataSaved(this.btnOK, new EventArgs());
MessageDxUtil.ShowTips("保存成功");
this.DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
trans.Rollback();
LogTextHelper.Error(ex);
MessageDxUtil.ShowError(ex.Message);
}
}
}
}
⑽ sql批量插入
insert into table1(aaa,bbb,ccc)
select b.aaa,b.bbb,b.ccc
from table2 b
where not exits (select 1 from table1 where b.aaa = table1.aaa)
試試?