假设数据库名 tab
字段 id(标识列),bh
要求生成如下记录,假设50条:
id bh
... 0051
... 0052
... 0053
.
.
.
... 0100请问,如果在记录数比较大(10000以上)的时候应使用什么样的语句效率会比较高,能否不适用循环。
字段 id(标识列),bh
要求生成如下记录,假设50条:
id bh
... 0051
... 0052
... 0053
.
.
.
... 0100请问,如果在记录数比较大(10000以上)的时候应使用什么样的语句效率会比较高,能否不适用循环。
FROM (
SELECT TOP 10000 ID=ROW_NUMBER() OVER (ORDER BY GETDATE()) FROM syscolumns AS A,syscolumns AS B
) T
set @i=0
while @i<=50
begin
set nocount on
declare @tb table (id int, id1 int identity(50,1) ,bh as right( '00'+cast(id1 as varchar(10)),4) )
insert into @tb (id) select 10
set @i=@i+1
set nocount off
end
select id,bh from @tb
id bh
----------- --------
10 0050
10 0051
10 0052
10 0053
10 0054
10 0055
10 0056
10 0057
10 0058
10 0059
10 0060
10 0061
10 0062
10 0063
10 0064
10 0065
10 0066
10 0067
10 0068
10 0069
10 0070
10 0071
10 0072
10 0073
10 0074
10 0075
10 0076
10 0077
10 0078
10 0079
10 0080
10 0081
10 0082
10 0083
10 0084
10 0085
10 0086
10 0087
10 0088
10 0089
10 0090
10 0091
10 0092
10 0093
10 0094
10 0095
10 0096
10 0097
10 0098
10 0099
10 0100(51 行受影响)
1、ID由系统自动生成,和bh没有任何对应关系;
2、bh的规则就是,从指定起始编号开始,如题为0051,每条记录依次加1;
3、起始编号可能每次不一样,不考虑bh重复。