在一个存储过程中调用另外一个存储过程(1)

 时间:2026-02-15 18:06:19

1、先建立一个table,表名为student

usetest

go

createtablestudent

(idvarchar(50)primarykey,

namechar(6)notnull,

sexchar(2)notnull)

2、创建一个存储过程,获得学生的id.。

此存储过程根据所获得的id的格式为:"2012073100000001"

createprocedure[dbo].[get_id]

(@idchar(16)out)//此存储过程的输出为@id

as

begin

setnocounton;

declare@timechar(8)

set@time=CONVERT(char(8),GETDATE(),112)//获得当前的时间,格式为"20120731"

selectTOP1@id=idfromstudentwhereidLIKE@time+'%'orderbyiddesc

//获取表student的id那一列的格式为“当前时间+。。。”形式的id的最大值

if@idisnull

set@id=(@time+'00000001');

else

begin

declare@numchar(8)

set@num=CONVERT(char,(convert(int,right(@id,8))+1))

//如果存在这样的最大值,那么把侨泉此id的后八位先转化为int型然 后加1,在转换为char型,不足八位的前面加0,把此数据补足为 八位

set@num=REPLICATE('0',8-LEN(@num))+@num

set@id=@time+@num//@id就是当前时间与所获得的八位数据的相连的脂匠字符串

END

END

3、再创建一个存储过程,目的是往表student中插入诸迅英数据

createproceduredbo.save_student(@namechar(6),@sexchar(2))

as

begin

setnocounton

declare@idvarchar(50)

execdbo.get_id@idoutput//调用存储过程dbo.get_id,输出为@id

insertintostudentvalues(@id,@name,@sex)

end

4、注意事项

5、调用存储过程时跟普通的查询一样的。把输入输出摆在后面就可以了

6、例如:exec dbo.get_sum input1,input2...,output1 output,output2 output...


  • 完美你的Nand!自制系统手动完美处理坏块教程
  • 摩尔庄园复古拉姆音乐家具怎么获取
  • 在 GIMP 中用 Cage (笼子)变换工具实现图像变形
  • wps演示中如何制作商务会议型目录
  • 哔哩哔哩视频播放速度测试在哪
  • 热门搜索
    通存通兑是什么意思 grey是什么颜色 关东是指什么地方 mesh是什么意思 佝偻病是什么 双规是什么意思 bt是什么 送父亲什么礼物好 人工是什么字 什么是飞蚊症