存储过程/* STANDARD STORED PROCEDURE */  
CREATE PROCEDURE [dbo].[sp3_temp_t_i]  
  @tid int output,  
  @ttext varchar(20)=NULL  
AS  
  
DECLARE  @rowcount int  
  
  
INSERT INTO temp_t(ttext)  
VALUES(@ttext)  
  
SELECT  @rowcount = @@ROWCOUNT,@tid=@@IDENTITY  
--------
使用
declare @id int
exec sp3_temp_t_i
@tid=@id output,
@ttext='aaaabc'
select @id
返回结果
消息 208,级别 16,状态 1,过程 sp3_temp_t_i,第 11 行
Invalid object name 'temp_t'.(1 行受影响)实际上数据库中没有值,也就是插入未成功?是什么原因出错,我如何取得这个tid的返回值?

解决方案 »

  1.   

    检查下表名temp_t有没有写错
    或者,你不是在sa或者其他dbo用户建立的表,用user.temp_t来访问表
      

  2.   

    CREATE   PROCEDURE   [dbo].[sp3_temp_t_i]     
        @tid   int   output,     
        @ttext   varchar(20)=NULL     
    AS     
    Begin    
    DECLARE     @rowcount   int     
        
        
    INSERT   INTO   temp_t(ttext)     
    VALUES(@ttext)     
        
    SELECT     @rowcount   =   @@ROWCOUNT,@tid=@@IDENTITY   
    end
    -------------------------------------------------
    如果是这样的话,Procedure中只有一句语句,必须加上Begin & End
      

  3.   


    如果是这样的话,Procedure中只有一句语句,必须加上Begin   &   End刚才试了一下,不必加上Begin & End,