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)
试试?