什么是存储过程?
存储过程是由流控制和sql语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。
存储过程是一组为了完成特定功能的sql语句集合。
存储过程就是你把逻辑判断写在数据库sql语句集中,然后再vs中调用存储过程名字就行。
有参数的存储过程
--登陆存储过程
CREATE PROCEDURE Proc_Login_GetRoleAndResource
@UserName varchar(50), --用户名
@UserPwd varchar(50) --密码
AS
BEGIN
IF(EXISTS(SELECT * FROM T_User WHERE T_User_Name=@UserName )) --判断是否存在
BEGIN
IF(EXISTS(SELECT * FROM T_User WHERE T_User_Name=@UserName and T_User_Pwd=@UserPwd)) --判断用户名和密码
BEGIN
SELECT '登陆成功'
SELECT * FROM T_User
inner join T_User_Role ON T_User.T_User_ID=T_User_Role.T_User_ID
inner join T_Role ON T_User_Role.T_Role_ID=T_Role.T_Role_ID
inner join T_Role_Resources ON T_Role.T_Role_ID=T_Role_Resources.T_Role_ID
inner join T_Resources ON T_Role_Resources.T_Resources_ID=T_Resources.T_Resources_ID
WHERE T_User_Name=@UserName and T_User_Name=@UserPwd
END
ELSE --用户名和密码是否正确
BEGIN
SELECT '登陆失败 密码错误'
END
END
ELSE 不存在
BEGIN
SELECT '登陆失败 用户名不存在'
END
END