UP_Friends_Exists  这是一个存储过程 return 0或1我在另外一个存储过程ALTER PROCEDURE [dbo].[UP_Friends_ADD]
@UserID int,
@FriendUserID int ,
@RequestMessage varchar(500) ,
@RequestDate datetime ,
@IsAccepted bit 
 AS 
Declare @cnt int;
Set @cnt= dbo.UP_Friends_Exists (@UserID,@FriendUserID)
if @cnt=0
INSERT INTO Friends(
[FriendUserID],[RequestMessage],[RequestDate],[IsAccepted]
)VALUES(
@FriendUserID,@RequestMessage,@RequestDate,@IsAccepted
)
语法都通过了.
但调用的时候报错.
Msg 208, Level 16, State 1, Procedure UP_Friends_ADD, Line 17
Invalid object name 'dbo.UP_Friends_Exists'.

解决方案 »

  1.   

    Create PROCEDURE [dbo].[UP_Friends_ADD]
    @UserID int,
    @FriendUserID int ,
    @RequestMessage varchar(500) ,
    @RequestDate datetime ,
    @IsAccepted bit 
     AS 
    Declare @cnt int;
    Set @cnt= dbo.UP_Friends_Exists (@UserID,@FriendUserID)
    if @cnt=0
        INSERT INTO Friends(
        [FriendUserID],[RequestMessage],[RequestDate],[IsAccepted]
        )VALUES(
        @FriendUserID,@RequestMessage,@RequestDate,@IsAccepted
        )還不存在這個sp怎么修改這個sp
      

  2.   

    不是是 dbo.UP_Friends_Exists 這個是否存在?
    所有者是不是dbo?
      

  3.   

    'dbo.UP_Friends_Exists'
    是不是搞错数据库了当前数据库应没有这个函数吧
      

  4.   

    Set @cnt= dbo.UP_Friends_Exists (@UserID,@FriendUserID)
    --
    exec @cnt= dbo.UP_Friends_Exists (@UserID,@FriendUserID)
      

  5.   

    ALTER PROCEDURE [dbo].[UP_Friends_ADD]
    @UserID int,
    @FriendUserID int ,
    @RequestMessage varchar(500) ,
    @RequestDate datetime ,
    @IsAccepted bit 
     AS 
    Declare @cnt int
    --Set @cnt= dbo.UP_Friends_Exists (@UserID,@FriendUserID)
    exec @cnt =  UP_Friends_Exists @UserID,@FriendUserID
    if @cnt=0
        INSERT INTO Friends(
        [FriendUserID],[RequestMessage],[RequestDate],[IsAccepted]
        )VALUES(
        @FriendUserID,@RequestMessage,@RequestDate,@IsAccepted
        )
      

  6.   

    存储过程要用exec来调用,而且,后面的参数不能用括号括起来
      

  7.   

    ALTER PROCEDURE [dbo].[UP_Friends_ADD]
    ?create PROCEDURE [dbo].[UP_Friends_ADD]