网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 生活知识 知识问答

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

时间:2024-11-16 20:28:00

1、先建立一个table,表名为studentusetestgocreatetablestudent(idvarchar(50)primarykey,namechar(6)notnull,sexchar(2)notnull)

2、创建一个存储过程,获得学生的id.。此存储过程根据所获得的id的格式为:"2012073100000001"createprocedure[dbo].[get_id](@idchar(16)out)//此存储过程的输出为@idasbeginsetnocounton;declare@timechar(8)set@time=CONVERT(char(8),GETDATE(),112)//获得当前的时间,格式为"20120731"selectTOP1@id=idfromstudentwhereidLIKE@time+'%'orderbyiddesc//获取表student的id那一列的格式为“当前时间+。。。”形式的id的最大值if@idisnullset@id=(@time+'00000001');elsebegindeclare@numchar(8)set@num=CONVERT(char,(convert(int,right(@id,8))+1))//如果存在这样的最大值,那么把此id的后八位先转化为int型然 后加1,在转换为char型,不足八位的前面加0,把此数据补足为 八位set@num=REPLICATE('0',8-LEN(@num))+@numset@id=@time+@num//@id就是当前时间与所获得的八位数据的相连的字符串ENDEND

3、再创建一个存储过程,目的是往表student中插入数据createproceduredbo.衡痕贤伎save_student(@namechar烫喇霰嘴(6),@sexchar(2))asbeginsetnocountondeclare@idvarchar(50)execdbo.get_id@idoutput//调用存储过程dbo.get_id,输出为@idinsertintostudentvalues(@id,@name,@sex)end

4、注意事项

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

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

© 2026 小知经验
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com