CREATE PROCEDURE INSERT_PICTURES
@root nvarchar(100),
@dir nvarchar(50),
@name nvarchar(50),
@data nvarchar(100),
@user_id int,
@result nchar(20) output
AS
begin tran
INSERT into pictures (root,dir,[name],data) VALUES(@root,@dir,@name,@data)
select @@identity
insert into pictures_users(picture_id,[user_id]) values(@@identity,@user_id)
if @@error<>0 
begin 
  rollback tran 
  set @result='false'
  return  --意外错误 
end 
else 
begin 
  commit tran 
  set @result='true'
  return 
end
 print @result
GOdeclare @result nchar(20)
execute dbo.INSERT_PICTURES '111','22','dd','0','0',@result output
select @result

解决方案 »

  1.   

    CREATE PROCEDURE INSERT_PICTURES
    @root nvarchar(100),
    @dir nvarchar(50),
    @name nvarchar(50),
    @data nvarchar(100),
    @user_id int,
    @result nchar(20) output
    AS
    begin tran
    INSERT into pictures (root,dir,[name],data) VALUES(@root,@dir,@name,@data)
    select @@identity
    insert into pictures_users(picture_id,[user_id]) values(@@identity,@user_id)
    if @@error<>0 
    begin 
      rollback tran 
      set @result='false'
      return  --意外错误 
    end 
    else 
    begin 
      commit tran 
      set @result='true'
      return 
    end
     --print @result
    GOdeclare @result nchar(20)
    execute dbo.INSERT_PICTURES '111','22','dd','0','0',@result output
    select @result
      

  2.   

    Try:
    Declare @result nchar(20)
    execute dbo.INSERT_PICTURES '111','22','dd','0','0',@result output
    Select @result
      

  3.   


    (所影响的行数为 1 行)报这个错了
    (所影响的行数为 1 行)服务器: 消息 208,级别 16,状态 1,过程 INSERT_PICTURES,行 12
    对象名 'pictures_users' 无效。
    服务器: 消息 266,级别 16,状态 1,过程 INSERT_PICTURES,行 25
    EXECUTE 后的事务计数指出缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。原计数 = 2,当前计数 = 3。(所影响的行数为 1 行)
      

  4.   

    服务器: 消息 208,级别 16,状态 1,过程 INSERT_PICTURES,行 12
    对象名 'pictures_users' 无效。
    ----------------------------------------------------
    檢查這個表名(pictures_users)有沒有寫錯??