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

如何用SQL语句将数据批量插入数据库,第1张

如果是sql server,用transaction sql写;

如果是oracle,用pl/sql写。

这两种语法都可以写一些逻辑语句,跟一些高级语言差不多,随便搜一下就有介绍了。自己学学,不多讲了。

用JDBC也可以,不过稍微麻烦点。用上面的方法可以直接在DBMS的客户端运行,简单直接。

--------------------------------------------

上面我说的,好像不太适合你这个问题。确实用JDBC(Java语言)或ODBC(C++)写代码能实现:循环读文件里面的每条数据,生成相应的sql语句,然后调用API写入数据库

还有一个方法就是,用txt或excel保存数据,然后用sql server2000的企业管理器导入txt或excel文档,你按着向导试试看。

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

不多说,直接上代码:

首先得新建一个数据库

DataTable

once_rec_date

=

new

DataTable()

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

就是列的位置和目标数据库的位置,顺序得

一模一样。因为都是块存储,所以地址什么的都得一样,千万不能少一列,自增列可以空在那边。

在初始化中初始化该表

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

代码如下:

--创建测试表

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]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6661923.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存