SQL中 创建一个存储过程 将学生信息表中学号降序排列 在学生姓名后增加序列号

2025-02-24 20:44:42
推荐回答(3个)
回答1:

create proc 过程
as
begin
declare @s nvarchar(4000)

if isnull(objectproperty(object_id(学生信息表),'IsUserTable'),0)=0
begin
select 错误='无效的表名'
return
end

--添加字段
set @s='alter table 学生信息表 add 序列号 int null
exec(@s)

--更新数据
update 学生信息表 set S.序列号=T.num
from 学生信息表 S,
(select rownum as num,学号 from (select * from 学生信息表 order by 学号 desc)) T
where S.学号=T.学号
end

回答2:

if exists(select * from sysobjects where name='num_desc')
drop procedure num_desc

create procedure num_desc
as
select * into #tt from 学生信息表 order by st_id desc
alter table #tt add idcol int identity(1,1)
select * from #tt
drop table #tt
go

exec num_desc

st_id表示学号,idcol表示序号,执行结果是学号降序排列,序号为1,2,3,……,n的形式。

回答3:

"在学生姓名后增加序列号"什么意思啊