SQL批量插入数据并且实现字符串的数字部分递增

问题:实现编号“A001”中数字部分递增

解决:

方式一:

①实现编号中数字部分“001”+1后变为“002,而不是2

DECLARE @id VARCHAR (10)
SET @id='A001'
SET @id = RIGHT(@id, 3) + 1
SET @id = 'A' + RIGHT ('000' +@id, 3)
SELECT @id
--------
结果:打印出的id为A002
②使用循环批量插入数据
DECLARE @id varchar(10),@Counter INT
SET @id='A001'
SET @Counter = 0          /*设置变量*/ 
WHILE (@Counter < 10)     /*设置循环次数*/ 
BEGIN
INSERT INTO TableName VALUES(@id);	/*插入表中,TableName为你的表*/
SET @id= RIGHT(@Id, 3) + 1
SET @id = 'A' + RIGHT ('000' +@id, 3)
SET @Counter=@Counter+1 
END


方式二:通过Excel批量生成SQL语句
①方法一:
将Excel的数据整理好,通过SQL的导入功能直接导入到数据库中,但是要保证数据库的字段和Excel的字段一致。
②方法二:
通过Excel生成相应的SQL语句,然后放到SQL的新建查询中执行
在单元格中写入公式:="INSERT INTO TableName(Column1,Column2) VALUES('"&A1&"','"&B1&"') "
然后直接从头拉到尾(或者选中公式的单元格,在指针变为十字后双击,即可自动填充),然后直接复制相关的SQL语句在数据库中执行

③改进:
一次插入多条数据比逐次一条一条的插入数据效率高很多,因此将语句改为如下:

INSERT INTO TableName(Column1,Column2)
VALUES
('Value1.1','Value1.2'),
('Value2.1','Value2.2'),
('Value3.1','Value3.2')
之后还是通过Excel批量生成Values后面的要插入的数值。

你可能感兴趣的:(SQL批量插入数据并且实现字符串的数字部分递增)