table 
ID   name
1    a
2    b我要用一个存储过程插入记录!
插入成功的时候,存储过程就返回一个1
插入失败就返回一个0怎么来写?

解决方案 »

  1.   


    通过@@error来判断
    成功为0
    不成功为非0
      

  2.   

    @@ERROR
    返回最后执行的 Transact-SQL 语句的错误代码。语法
    @@ERROR返回类型
    integer注释
    当 Microsoft® SQL Server™ 完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。您可以在 sysmessages 系统表中查看与 @@ERROR 错误代码相关的文本信息。由于 @@ERROR 在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。
      

  3.   

    create procedure Myproc(@id int,@name nvarchar(20))
    as
    begin 
        insert into tb values(@id,@name)
        if @@error >0
            return 0
        return 1
    end 
      

  4.   

    if @@error>0
    print '1'
    else
    print '0'
      

  5.   

    严重错误程序会中断执行.在检测@@error之前就退出.
    最检测要插入的数据,再作插入.
      

  6.   

    CREATE PROCEDURE AddData
      @id int,
      @name varchar(20),
      @sign int output
    AS
      insert into tablename(id,name) values(@id,@name)
      if not exists(select id from tablename where id=@id)
      begin
         select @sign=0
      end
      else
      begin
         select @sign=1     
      end
    GO
      

  7.   

    create proce proc_name(@id int,@name nvarchar(30)) 
    as 
    begin 
        insert into tb values(@id,@name) 
        if @@error >0 
            return 0 
        return 1 
    end