创建存储过程

来源:互联网 发布:淘宝批发市场进货 编辑:程序博客网 时间:2024/06/06 02:48


/*
**********************************************************************
* 文件名:            createprocedure.sql
* 功能:              创建存储过程
* 创建时间:            2008-4-16
* 创建人:            XSing
* 最后修改时间:        2008-4-16
* 最后修改人:        XSing
**********************************************************************
*/


if exists(select 1 from sysobjects where [id]= object_id(N'[dbo].[pro_Student_insert]')
and [xtype] in(N'P'))
drop procedure [dbo].[pro_Student_insert]
go
create procedure [dbo].[pro_Student_insert]
(
@no varchar(9),
@name varchar(8),
@sex bit = 1,
@birthday smalldatetime = '1988-8-8',
@resault varchar(50) output --输出参数
)
as
--declare @sql varchar(200)
if exists(select 1 from Student where Sno =@no)
begin
set @resault = N'学号重复,请勿反复输入。'
return
end
--以下三种方式都可以实现数据插入,前两种使用了CONVERT方法处理,只插入日期,第三种可插入时间。第一种方法俗称动态SQL。
--
@1:set @sql = 'insert Student values('''+@no+''','''+@name+''','+str(@sex)+','''+convert(char(10),@birthday,120)+''')'
--
exec(@sql)
--
@2:
insert Student values(@no,@name,@sex,convert(char(10),@birthday,120))
--@3:insert Student values(@no,@name,@sex,@birthday)
if (@@error=0)--@@error int,系统参数,记录SQL语句执行情况,0为无错误,其它为错误代码
begin
set @resault = N'输入成功'
return
end
if (@@error<>0)
begin
set @resault = N'失败,请检查数据再试、或者联系管理员。'
return
end
go
--测试存储过程
declare @aaa varchar(50)
exec pro_Student_insert 'AP0808809','魔骨',1,'1985-6-8',@aaa output
print @aaa
go
declare @aaa varchar(50)
exec pro_Student_insert 'AP0808810','魔奴',1,'1999-9-9',@aaa output
print @aaa
go




 
原创粉丝点击