/**//************************************************************************ 文件名: 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]gocreate 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)beginset @resault = N'学号重复,请勿反复输入。'returnend--以下三种方式都可以实现数据插入,前两种使用了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为无错误,其它为错误代码beginset @resault = N'输入成功'returnendif (@@error<>0)beginset @resault = N'失败,请检查数据再试、或者联系管理员。'returnendgo--测试存储过程declare @aaa varchar(50)exec pro_Student_insert 'AP0808809','魔骨',1,'1985-6-8',@aaa outputprint @aaagodeclare @aaa varchar(50)exec pro_Student_insert 'AP0808810','魔奴',1,'1999-9-9',@aaa outputprint @aaago