创建存储过程create Proc dbo.存储过程名存储过程参数as执行语句return执行存储过程GO这是一般创建过程."执行语句return
"

"执行存储过程GO"
这两个位置互换没有问题吧...我建一个例子...但是感觉好别扭...
况且我见他是
 "执行存储过程" -> "执行语句" -> begin -> end...
这两天刚碰 数据库存储过程....明天去看图书馆有木有数据库的书...

解决方案 »

  1.   

    --一个简单的存储过程
    CREATE PROCEDURE order_tot_amt
    @o_id int,
    @p_tot int output
    AS
    SELECT @p_tot = sum(Unitprice*Quantity)
    FROM orderdetails
    WHERE orderid = @o_id
    GO如上所示 简单的存储过程不一定非得要return吧
    如果需要事务处理的话 需要ROLLBACK 并且return 结束
    例如:
    CREATE PROC pr_auth_user
    @au_id varchar(11),
    @au_lname varchar(40),
    @au_fname varchar(40),
    @phone char(12),
    @contract bit,
    --一般将具有默认值的参数放在后边定义,便于调用时省略
    @address varchar(50)=null, 
    @city varchar(20)=null,
    @state char(2)=null, 
    @zip char(5)=null
    AS
    BEGIN TRAN
    INSERT usermember1(username,pwd)
    VALUES(@au_fname+' '+ @au_lname, @au_fname+' '+ @au_lname);
    IF @@ERROR <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
    INSERT usermember2(username,pwd)
    VALUES(@au_fname+' '+ @au_lname, @au_fname+' '+ @au_lname);
    IF @@ERROR <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
    COMMIT TRAN
    GO
      

  2.   


    CREATE PROCEDURE order_tot_amt
    @o_id int,
    @p_tot int output
    AS
    Declare xxx
    execute xxx
    begin xx
    end 
    这样哦...