当前位置: 代码迷 >> SQL >> SQL存储过程实例
  详细解决方案

SQL存储过程实例

热度:14   发布时间:2016-05-05 13:26:18.0
SQL存储过程范例

例1 [email protected],判断用户是否存在

-------------------------------------------
CREATE PROC IsExistUser(@username varchar(20),@IsExistTheUser varchar(25) OUTPUT--输出参数)asSELECT @IsExistTheUser = count(username)FROM usersWHERE username = @usernameGO


例2 存储过程结合事务的一个例子:添加用户,涉及到两个表,一个用户资料表,一个密码表:


增加用户
-------------------------------------------
create procedure AddUser(@username varchar(20),--用户名@passwords varchar(18),--密码@email varchar(100),--邮箱@qq varchar(11),--QQ号码@imageid int--头像)as


-- 设置NOCOUNT为ON,使不再返回统计信息(存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。)
SET NOCOUNT ONDECLARE @CurrentError int


-- 创建事务, 插入数据到2个表
BEGIN TRANSACTION


-- 创建用户信息
INSERT INTO users (username, email, qq, imageid)VALUES (@username, @email, @qq, @imageid)select @CurrentError = @@ErrorIF @CurrentError != 0BEGINGOTO ERROR_HANDLEREND



-- 创建用户密码
INSERT INTO Signon (username, [password])VALUES (@username, @passwords)select @CurrentError = @@ErrorIF @CurrentError != 0BEGINGOTO ERROR_HANDLEREND



-- 结束事务
COMMIT TRANSACTION


-- 恢复NOCOUNT设置为OFF
SET NOCOUNT OFF


-- 返回0表示成功,其他则为失败
RETURN 0


-- 错误处理
ERROR_HANDLER:ROLLBACK TRANSACTIONSET NOCOUNT OFFRETURN @CurrentErrorGO


  相关解决方案