如何创建一个存储过程
本人在一家500强面试的时候,没想到会问这样的问题,只是觉得一句语句就能解决的问题,有什么好说的,但是结束之后才感觉到也许面试官想问的不只是这些。下面,我把我的反思和总结分享给大家。
一个好的程序员,必须有判断的思维,所以说,在写创建语句之前,一定要加上一个判断。
(1) 判断这条语句是否存在
if(exists(select * from sys.objects where name='这里是存储过程的名字'))
drop 存储过程名
(2) 创建存储过程
create proc 存储过程名(@参数)
as(后面这些网上都有)
declare @ID int --定义变量
declare @Account varchar(50) --同上
declare @Content varchar(50) --同上
if not exists(select * from tblBlackList(nolock) --如果不存在则执行下面的语句.
where fdcMobile=@strMobile)
begin
insert into tblBlackList(fdcMobile,fdcName,fdtTm,fdcMemo)
values(@strMobile,@strName,getdate(),@strRemark) --getdate()获取当前系统的时间
set @ID=@@identity --返回一行记录
select @Account=Account from dbo.UserInfo where UserID=@UserID
set @Content='添加黑名单('+'操作者:'+@Account+','+'用户名:'+@strName+'手机:'+@strMobile+'备注:'+@strRemark+')' --设置变量的值
exec ProcRecordLog @Account,'添加',@Content ---执行储过程ProcRecordLog
return @ID
end
GO
也许语句是次要的,那个判断的思维才是真正考验人的。