create proc proc_test_insert --如果要修改这个存储过程的话只要给create 改为alter就行了 ( @p_name nvarchar(50), @p_age int, @p_email varchar(100), @p_addres nvarchar(100), @p_remarks nvarchar(100) --@num nvarchar out -- 用来保存输出的错误信息,或者成功信息 ) as begin if @p_email is null or LEN(@p_email)<=0 print 'email不能为空'; else if @p_addres is null or LEN(@p_addres)<=0 print '地址不能为空' else begin insert into t_test values(@p_name,@p_age,@p_email,@p_addres,@p_remarks) print ' 插入成功' end end exec proc_test_insert '武松',46,'wusong@163.com','','' --插入不会成功,会报错:"地址不能为空"
或者这样也可以
create proc proc_test_insert --如果要修改这个存储过程的话只要给create 改为alter就行了 ( @p_name nvarchar(50), @p_age int, @p_email varchar(100), @p_addres nvarchar(100), @p_remarks nvarchar(100), @num nvarchar(50) out -- 用来保存输出的错误信息,或者成功信息 ) as begin set @num=''; if @p_email is null or LEN(@p_email)<=0 set @num= 'email不能为空'; else if @p_addres is null or LEN(@p_addres)<=0 set @num= '地址不能为空' else begin insert into t_test values(@p_name,@p_age,@p_email,@p_addres,@p_remarks) set @num= ' 插入成功' end end declare @num nvarchar(50); exec proc_test_insert '鲁智深',45,'','山东省济宁市梁山县','', @num out --插入不会成功,会报错:"email不能为空" print @num