当前位置:首页 » 编程语言 » 批量写入至sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

批量写入至sql

发布时间: 2022-07-07 09:54:51

㈠ 转载:如何将Excel数据批量导入sql数据库

string connString = server=localhost;uid=sa;pwd=sqlgis;database=master;
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK){TransferData(fd.FileName, sheet1″, connString);}}public void TransferData(string excelFile, string sheetName, string connectionString){DataSet ds = new DataSet();try{//获取全部数据
string strConn = Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= + excelFile + ; + Extended Properties=Excel 8.0;;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = ;
OleDbDataAdapter myCommand = null;
strExcel = string.Format(select * from [{0}$], sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
//如果目标表不存在则创建
string strSql = string.Format(if object_id(’{0}’) is null create table {0}(, sheetName);
foreach (System.Data.DataColumn c in ds.Tables[0].Columns){strSql += string.Format([{0}] varchar(255),, c.ColumnName);}strSql = strSql.Trim(’,') + );
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open();
System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
command.CommandText = strSql;
command.ExecuteNonQuery();
sqlconn.Close();}//用bcp导入数据
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;//每次传输的行数
bcp.NotifyAfter = 100;//进度提示的行数
bcp.DestinationTableName = sheetName;//目标表

㈡ oralce数据库怎么批量导入sql

1:运行cmd进入命令行界面
2:进入到存放批量sql的文件夹下面
3:输入命令 sqlplus 数据库名/密码@数据库 按回车键
4:输入spool 指定路径:\a.log 按回车键 (此步骤的主要作用就是追踪批量执行sql的日志,路径随便写,只要能找到就行,a.log可以随便起名,但是必须要.log后缀)
5:@start.sql 按回车键(在批量sql文件夹下写一个文件,名字叫start.sql,其中在这个文件里面写批量sql的文件名)
具体格式如下:@@sql的文件名.sql;
@@sql的文件名2.sql;
.......
6:spool off (此时a.log中所有日志已经写入完毕)
7:exit 退出sqlplus

当然只有一个sql文件,但是里面有多个insert语句,数据量非常大,此时也可以在命令状态下执行,前4步是一样的,第五步就是@文件名.sql;

㈢ 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'))

㈣ 如何正确的进行大规模SQL语句的批量操作

在使用Statement的批量SQL命令操作的时候,一定要注意写入到内存中命令列表的SQL语句的数量级,在小规模的数据量下,可以将所有SQL语句添加到命令列表中,一次性执行executeBatch()方法,但是在大规模数据量的情况下,就应该分批将SQL语句添加到命令列表中,并在每次调用executeBatch()方法后,调用clearBatch()方法将命令列表中的SQL语句清空,注意了,一定要记得调用clearBatch()方法清空命令列表,不然即使分批添加SQL语句,一样要“out
of
memory”。同时由这个问题,我们也可以引申开来考虑考虑在编写将数据保存在内存中的操作的时候,也应该注意实际系统运行环境的内存配置所能支持的数据量,千万不能不管三七二十一的将数据一股脑儿往内存里塞。

㈤ 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语句怎么写。

批量插入不要用循环,直接sql语句就可以了:
insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
这样就可以了,上面的sql批量了2条,以此类推,中间隔半角逗号即可。
我就晕了,你不会用程序处理啊,用一个array_map然后implode不久可以了吗?

㈦ 解析txt文件,将文件中明细批量插入mysql数据库表中,怎么做

批量写入,提高效率,最简单直接的办法就是:

txt文本
作为一个数据源处理,而不是文件读取,这样,通过数据源,就可以直接批量读取为一个recordset,然后,直接写入数据库了。
ps:这要求
文本文件格式
非常规律,如果不行,自己尝试在内存里面构建recordset吧。

㈧ 请教如何将excle上面的数据批量导入至sql2008数据库

在查询分析器里,直接写 SQL语句:
如果是导入数据到现有表,则采用形式
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
如果是导入数据并新增表,则采用形式
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。 操作过程如下:
第一步:登录到 SQL Server Management Studio
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。

㈨ 如何将批量的数据存入SQL数据库中

在一些数据量比较大,而且操作数据库频繁的。此时需要将数据表datatable整块的存入数据库中。


不多说,直接上代码:

首先得新建一个数据库

DataTable once_rec_date = new DataTable();

这个数据库得跟目标数据库的列的位置和大小都得一样。特别是类型,和位置。

就是列的位置和目标数据库的位置,顺序得 一模一样。因为都是块存储,所以地址什么的都得一样,千万不能少一列,自增列可以空在那边。

在初始化中初始化该表

<prename="code"class="csharp">once_rec_date.Columns.Add("id",typeof(int));
once_rec_date.Columns.Add("RevData_cmd",typeof(int));
once_rec_date.Columns.Add("Node",typeof(int));
once_rec_date.Columns.Add("Data",typeof(String));
once_rec_date.Columns.Add("Ssingle",typeof(int));
once_rec_date.Columns.Add("IsWiressData",typeof(int));
once_rec_date.Columns.Add("Datatime",typeof(DateTime));
once_rec_date.Columns.Add("Receivetime",typeof(DateTime));
once_rec_date.Columns.Add("IsMatch",typeof(int));</pre><br>
<p></p>
<pre></pre>
<spanstyle="font-size:18px">初始化之后,在程序中填充该datatable<br>
</span><br>
<p></p>
<p></p><prename="code"class="csharp">DataRownewrow=once_rec_date.NewRow();
newrow["RevData_cmd"]=cmd;
newrow["Node"]=Nodeid;
newrow["Data"]=datastring;
newrow["IsWiressData"]=IsWiress;
newrow["Ssingle"]=1;
newrow["Datatime"]=datatime;
newrow["Receivetime"]=time1;
newrow["IsMatch"]=3;
once_rec_date.Rows.Add(newrow);
returntrue;</pre><br>
再在程序结束的时候调用下面的函数<prename="code"class="csharp"style="background-color:rgb(255,255,255);">AddDatatableToSQL</pre><p></p>
<p>该函数主要实现块存储,整datatable</p>
<p><br>
</p>
<p></p>
<prename="code"class="html"style="background-color:rgb(255,255,255);font-size:18px;"></pre><prename="code"class="csharp">///-----------------------------------------------------------------*
///<summary>*
///功能:将数据表批量存入到数据库中*
///函数调用:SqlBulkCopy*
///</summary>*
///<paramname="frameStruct">数据类型</param>*
///-----------------------------------------------------------------*
publicboolAddDatatableToSQL(DataTableScrTable)
{
using(SqlConnectionthisConn=newSqlConnection(ConnectionStr))
{
try
{
if(thisConn.State==ConnectionState.Closed)
{
thisConn.Open();
}
using(SqlBulkCopybulkCopy=newSqlBulkCopy(thisConn))
{
bulkCopy.DestinationTableName="RevData";//这里的数据库名字可以更改,或者通过传参传进去.
try
{
bulkCopy.WriteToServer(ScrTable);
returntrue;
}
catch
{
returnfalse;

}
finally
{
thisConn.Close();
}
}
}
catch
{

}
}//ensing
returnfalse;


}
</pre><br>
<p><br>
</p>

㈩ 如何用SQL语句将数据批量插入数据库

这种情况使用xml来进行批量插入.
1.asp.net页面上抓取数据,转换成xml字符串
2.将这个字符串作为参数传给存储过程
3.存储过程里,将这个xml读取成临时表
4.整个临时表插入到目标数据表中,这个过程可以使用sql
server的事务;其实在这里用不用事务问题都不大了,因为存储过程出错,数据插不进去的,还会抛出异常到asp.net后台,让后台进行处理异常.
您用游标或asp.net代码来循环,速度会比较慢的.