SQLServer批量创建有规则的数据

根据需求要生成从kkk001,kkk002开始的100个递增账号

手插要死人的,用SQL脚本轻松完成:

declare @a int
declare @s varchar(128) set @a = 1
while(@a<=100)
begin
set @s ='kkk' +right(''+convert(varchar,@a),3)
insert into loginuser values(@s,123456) set @a = @a +1
end

declare:申明变量, @变量名 类型

set:赋值

while: 循环逻辑判断

begin/end:循环开始/结束

right('00'+convert(varchar,@a),3):字符串'00'和变量a转成的字符串合并,例如循环@a=1时,就是001;right( ,3) 从字符串右边开始取3位,例如right('0000'+convert(varchar,@a),3),仍然是001

--------

下面的脚本大同小异,加入事务的处理

declare @a int
declare @s varchar(128) set @a = 1
while(@a<=100)
begin
begin tran t1
set @s ='kkk' +cast(@a as varchar)
insert into loginuser values(@s,123456)
if @@ERROR<>0
begin
rollback;
select @@ERROR
end
else
begin
commit;
set @a = @a +1
end
end

begin tran t1:开始事务t1。对应rollback; 和 commit;

cast(@a as varchar):字符转换,和convert类似,写法不同。

@@ERROR:表示上一条SQL语句执行结果是否有错,如果@@error的值不等于0,即是出错的情况就要采取措施,比如回滚。

上一篇:acdream 小晴天老师系列——我有一个数列! (ST算法)


下一篇:Java注释@interface的用法