今天学习了一下存储过程。
存储过程的基本语法不知道的可以问百度大神,在这儿就不写了。
根据语句,自己摸索着写了一个简单的存储过程(根据用户名密码,返回用户的id),代码如下:
GO
CREATEPROC CheckUser
@UserNamevarchar(200), --用户名 --要指定长度!要指定长度!
@UserPwdvarchar(200), --密码
@UserIDint OUTPUT --OUT或者OUTPUT都可以
AS
BEGIN
SELECT@UserID=UserID FROM UserInfo WHERE UserName=@UserNameAND UserPwd=@UserPwd
END
CREATEPROC CheckUser
@UserNamevarchar(200), --用户名 --要指定长度!要指定长度!
@UserPwdvarchar(200), --密码
@UserIDint OUTPUT --OUT或者OUTPUT都可以
AS
BEGIN
SELECT@UserID=UserID FROM UserInfo WHERE UserName=@UserNameAND UserPwd=@UserPwd
END
调用此存储过程:
--调用存储过程
DECLARE@IDint
EXEC CheckUser 'admin','123',@ID OUT --传出参数后面要跟OUTPUT
SELECT@ID
DECLARE@IDint
EXEC CheckUser 'admin','123',@ID OUT --传出参数后面要跟OUTPUT
SELECT@ID
总结:
写出来并成功调用也不是很顺利,中间遇到几个问题在后边说一下,贴出来的代码中我也注释了。
1.写存储过程的时候,参数如果是varchar等,后边要跟长度。不然虽然不提示错误,但是查询不到值。
2.存储过程中的带OUTPUT的参数,后边调用的时候也要跟上OUTPUT。不然也查询不到。
3.OUTPUT可以简写成OUT。
菜鸟,如有错误,欢迎指出。 :-)