首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL存储过程实例

2012-09-27 
SQL存储过程范例例1 传入一个参数@username,判断用户是否存在------------------------------------------

SQL存储过程范例

例1 传入一个参数@username,判断用户是否存在

-------------------------------------------

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


热点排行