例1 传入一个参数@username,判断用户是否存在
            -------------------------------------------------------------------------------
            CREATE PROC IsExistUser
            (
            @username varchar(20),
            @IsExistTheUser varchar(25) OUTPUT--输出参数
            )
            as
            SELECT @IsExistTheUser = count(username)
            FROM users
            WHERE username = @username 
            GO
            
例2 存储过程结合事务的一个例子:添加用户,涉及到两个表,一个用户资料表,一个密码表:
            
            增加用户
            -------------------------------------------------------------------------------
            create procedure AddUser
            (
            @username varchar(20),--用户名
            @passwords varchar(18),--密码
            @email varchar(100),--邮箱
            @qq varchar(11),--QQ号码
            @imageid int--头像
            )
            as
            -- 设置NOCOUNT为ON,使不再返回统计信息(存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。)
            SET NOCOUNT ON
            DECLARE @CurrentError int
            -- 创建事务, 插入数据到2个表
            BEGIN TRANSACTION
            -- 创建用户信息
            INSERT INTO users (username, email, qq, imageid)
            VALUES (@username, @email, @qq, @imageid)
            select @CurrentError = @@Error
            IF @CurrentError != 0
            BEGIN
            GOTO ERROR_HANDLER
            END
            -- 创建用户密码
            INSERT INTO Signon (username, [password])
            VALUES (@username, @passwords)
            select @CurrentError = @@Error
            IF @CurrentError != 0
            BEGIN
            GOTO ERROR_HANDLER
            END
            -- 结束事务
            COMMIT TRANSACTION
            -- 恢复NOCOUNT设置为OFF
            SET NOCOUNT OFF
            -- 返回0表示成功,其他则为失败
            RETURN 0
            -- 错误处理
            ERROR_HANDLER:
            ROLLBACK TRANSACTION
            SET NOCOUNT OFF
            RETURN @CurrentError
            GO