首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

SQL 批量插入和更改数据

2023-11-09 来源:花图问答

批量插入数据:

declare @i intset @i = 12 while @i < 14begin INSERT INTO [mdm1220].[dbo].[DEVICE]           ([SERIAL_NUMBER]           ,[IMEI]           ,[WIFI_MAC_ADDR]           ,[BLUETOOTH_MAC_ADDR]           ,[ACTIVESYNC_ID]           ,[STRONG_ID]           ,[LAST_INVENTORY_TIME]           ,[FIRST_CONNECTION_DATE]           ,[LAST_AUTH_DATE]           ,[LAST_USERNAME]           ,[LAST_PROFILE_INVENT_TIME]           ,[OS_FAMILY]           ,[LAST_USER_ID]           ,[WHITELIST_COMPLIANT]           ,[BLACKLIST_COMPLIANT]           ,[DEVICE_PROPERTIES_TIMESTAMP]           ,[ALL_WHITELIST_COMPLIANT]           ,[LAST_ACTIVITY]           ,[MANAGED]           ,[COOKIE_TOKEN]           ,[COOKIE_EXP]           ,[SHARED_STATUS]           ,[PROFILE_STATUS])    VALUES           (@i           ,‘35 698206 450366 6‘           ,‘64:9A:BE:85:7E:81‘           ,‘64:9A:BE:85:75:67‘           ,‘2TQ3F2Q4VT69V447KFOP7REQQ4‘           ,‘CF8Q44AA‘           ,‘2015-12-31 01:03:07.993‘           ,‘2015-12-30 23:08:30.497‘           ,‘2015-12-31 01:03:08.323‘           ,‘huifu2@worx.net "huifu2 wen"‘           ,‘2015-12-31 01:03:08.243‘           ,‘ANDROID‘           ,11           ,1           ,1           ,‘2015-12-30 23:09:38.317‘           ,1           ,‘2015-12-31 01:03:08.323‘           ,1           ,NULL           ,NULL           ,0           ,0           )               set @i = @i + 1end

更新数据

declare @i intset @i = 1 while @i < 14begin UPDATE [mdm1220].[dbo].[DEVICE]   SET ACTIVESYNC_ID = ‘ActiveSyncChangedFOP7REQQ4‘   WHERE ACTIVESYNC_ID = ‘2TQ3F2Q4VT69V447KFOP7REQQ4‘    set @i = @i + 1end

SQL 批量插入和更改数据

标签:sql

小编还为您整理了以下内容,可能对您也有帮助:

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工具。

1、在SQL安装目录下开启导入和导出数据,即DTS。

2、选择一个批量的数据,可以是表,也可以是带分隔符的文件,或excel文档之类,如图中选择,导入的格式

3、选择导入的目标

4、选择导入方式

5.具体的导入规则

SQLSERVER数据库中批量导入数据的几种方法

我们通过SQL脚本来插入数据,常见如下四种方式。

方式一:一条一条插入,性能最差,不建议使用。

INSERT INTO Proct(Id,Name,Price) VALUES(newid(),'牛栏1段',160);INSERT INTO Proct(Id,Name,Price) VALUES(newid(),'牛栏2段',260);

......

方式二:insert bulk

语法如下:

BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }

WITH  (

[ BATCHSIZE [ = batch_size ] ],

[ CHECK_CONSTRAINTS ],

[ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ],

[ DATAFILETYPE [ = 'char' | 'native'| 'widechar' | 'widenative' ] ],

[ FIELDTERMINATOR [ = 'field_terminator' ] ],

[ FIRSTROW [ = first_row ] ],

[ FIRE_TRIGGERS ],

[ FORMATFILE = 'format_file_path' ],

[ KEEPIDENTITY ],

[ KEEPNULLS ],

[ KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ],

[ LASTROW [ = last_row ] ],

[ MAXERRORS [ = max_errors ] ],

[ ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ],

[ ROWS_PER_BATCH [ = rows_per_batch ] ],

[ ROWTERMINATOR [ = 'row_terminator' ] ],

[ TABLOCK ],

)  

相关参数说明:

BULK INSERT

[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]

FROM 'data_file'

[ WITH

(

[ [ , ] BATCHSIZE = batch_size ]    --BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量

[ [ , ] CHECK_CONSTRAINTS ]     --指定在大容量导入操作期间,必须检查所有对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项,则所有 CHECK 和 FOREIGN KEY 约束都将被忽略,并且在此操作之后表的约束将标记为不可信。

[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]  --指定该数据文件中数据的代码页

[ [ , ] DATAFILETYPE =

{ 'char' | 'native'| 'widechar' | 'widenative' } ]  --指定 BULK INSERT 使用指定的数据文件类型值执行导入操作。

[ [ , ] FIELDTERMINATOR = 'field_terminator' ]  --标识分隔内容的符号

[ [ , ] FIRSTROW = first_row ]    --指定要加载的第一行的行号。默认值是指定数据文件中的第一行

[ [ , ] FIRE_TRIGGERS ]     --是否启动触发器

[ [ , ] FORMATFILE = 'format_file_path' ]

[ [ , ] KEEPIDENTITY ]   --指定导入数据文件中的标识值用于标识列

[ [ , ] KEEPNULLS ]    --指定在大容量导入操作期间空列应保留一个空值,而不插入用于列的任何默认值

[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]

[ [ , ] LASTROW = last_row ]   --指定要加载的最后一行的行号

[ [ , ] MAXERRORS = max_errors ]   --指定允许在数据中出现的最多语法错误数,超过该数量后将取消大容量导入操作。

[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]  --指定数据文件中的数据如何排序

[ [ , ] ROWS_PER_BATCH = rows_per_batch ]

[ [ , ] ROWTERMINATOR = 'row_terminator' ]   --标识分隔行的符号

[ [ , ] TABLOCK ]     --指定为大容量导入操作持续时间获取一个表级锁

[ [ , ] ERRORFILE = 'file_name' ]   --指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。

)]  

方式三:INSERT INTO xx select...

INSERT INTO Proct(Id,Name,Price) SELECT NEWID(),'牛栏1段',160

UNION ALL

SELECT NEWID(),'牛栏2段',180 UNION ALL......

方式四:拼接SQL

INSERT INTO Proct(Id,Name,Price) VALUES(newid(),'牛栏1段',160)

,(newid(),'牛栏2段',260)

......

怎样用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]

sql 批量修改数据

使用update 更新修改数据库数据,更改的结果集是多条数据则为批量修改。

语法格式如:

update 表格 set 列 = 更改值 where 筛选条件

例:

update table set a=1 --将table 中所以a列的值改为 1

update table set a=1 where b=2 --将table 中列b=2的记录中a列的值改为 1

显示全文