XH(序号) NR(内容)
1 a
2 b
3 c
4 d
5 e
6 f
现有数据t,x,z,w, 我怎么将数据依次插入到表A的某一序号后,比如说序号3后,并且使序号重排,插入后结果如下。
XH NR
1 a
2 b
3 c
4 t
5 x
6 z
7 w
8 d
9 e
10 f
如何做?请各位大侠赐教.谢谢
...全文
504打赏收藏
★★★★★求一个SQL语句或存储过程★★★★★
问题描述如下: 表A XH(序号) NR(内容) 1 a 2 b 3 c 4 d 5 e 6 f 现有数据t,x,z,w, 我怎么将数据依次插入到表A的某一序号后,比如说序号3后,并且使序号重排,插入后结果如下。 XH NR 1 a 2 b 3 c 4 t 5 x 6 z 7 w 8 d 9 e 10 f 如何做?请各位大侠赐教.谢谢
自定义函数:
create function GetRecordsNo(@str varchar(2000),@BeginNo int)
returns @Rec table (No int,Record varchar(40))
as
begin
declare @s varchar(2000)
declare @r varchar(2000)
declare @i varchar(2000)
declare @No int
set @No=@BeginNo+1
set @s=@str
set @i=CHARINDEX(',',@s)
while @i>0
begin
set @r=left(@s,@i-1)
insert @Rec values (@No,@R)
set @No=@No+1
set @s=right(@s,len(@s)-@i)
set @i=CHARINDEX(',',@s)
end
if len(@s)>0
insert @Rec values (@No,@s)
return
end
GO
参数:
declare @BeginNo int
declare @Nr varchar(100)
set @BeginNo=3
set @Nr='t,x,z,w'
declare @i int
select @i=count(*) from dbo.GetRecordsNo(@Nr,@BeginNo)
update a
set xh=xh+@i
where xh>@BeginNo
insert a
select * from dbo.GetRecordsNo(@Nr,@BeginNo)