无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'usp_Char_R'。仍将创建该存储过程。
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'usp_GM_CreateUser'。仍将创建该存储过程。
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'usp_Inven_R'。仍将创建该存储过程。
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'usp_Quest_R'。仍将创建该存储过程。
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'usp_Skill_R'。仍将创建该存储过程。
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'usp_Store_R'。仍将创建该存储过程。我在一个数据库里运行了sql后出现的,我知道是为什么,但我不知道该如何去修改使这几个诸存过程让它正确。
我是sql2000小白,有人帮帮我吗?下面是usp_Char_R的属性,不会修改。。晕
CREATE                     Proc usp_Char_R@Table varchar(100),
@CharID varchar(20),
@Guilds varchar(100),
@GuildChars varchar(100)ASSET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTEDDECLARE @Query nvarchar(4000)
DECLARE @GuildName varchar(100)
DECLARE @GuildLevel tinyint-- 길드명, 길드등급을 가져옴
SET @Query = '
SELECT @GuildName=A.GuildName, @GuildLevel=B.GuildLevel 
FROM '+ @Guilds+' A INNER JOIN '+@GuildChars+' B ON A.GuildID = B.GuildID'+'
WHERE B.Del = 0 AND B.CharID = ' + @CharIDEXEC sp_executesql @Query, N'@GuildName varchar(100) OUTPUT, @GuildLevel tinyint OUTPUT', @GuildName OUTPUT, @GuildLevel OUTPUTSET @GuildName = LTRIM(RTRIM(@GuildName))-- 길드정보를 캐릭터 정보에 포함시킴
SET @Query = '
SELECT CharName,CharID,Grow,Family,Sex,Job,Del,Slot,[Level],GuildName=@GuildName,GuildLevel=@GuildLevel,Str,[Int],Rec,Dex,Wis,Luc,HP,MP,SP,StatPoint,SkillPoint,Exp,[Money],K1,K2,K3,K4,Map,PosX,PosY,PosZ,RegDate,DeleteDate,JoinDate,LeaveDate,
OldCharName
FROM '+ @Table+' 
WHERE CharID = '+@CharIDEXEC sp_executesql @Query, N'@GuildName varchar(100), @GuildLevel tinyint', @GuildName, @GuildLevel
SET NOCOUNT OFF
SET TRANSACTION ISOLATION LEVEL READ COMMITTED我没有分啊!各位帮帮忙。

解决方案 »

  1.   


    create proc usp_Char_R 
    @Table varchar(100), 
    @CharID varchar(20), 
    @Guilds varchar(100), 
    @GuildChars varchar(100) 
    as set nocount on 
    set transaction isolation level read uncommitted declare @Query nvarchar(4000) 
    declare @GuildName varchar(100) 
    declare @GuildLevel tinyint -- 길드명, 길드등급을 가져옴 
    SET @Query = ' 
    SELECT @GuildName=A.GuildName, @GuildLevel=B.GuildLevel 
    FROM '+ @Guilds+' A INNER JOIN '+@GuildChars+' B ON A.GuildID = B.GuildID'+' 
    WHERE B.Del = 0 AND B.CharID = ' + @CharID EXEC sp_executesql @Query, N'@GuildName varchar(100) OUTPUT, @GuildLevel tinyint OUTPUT', @GuildName OUTPUT, @GuildLevel OUTPUT SET @GuildName = LTRIM(RTRIM(@GuildName)) -- 길드정보를 캐릭터 정보에 포함시킴 
    SET @Query = ' 
    SELECT CharName,CharID,Grow,Family,Sex,Job,Del,Slot,[Level],GuildName=@GuildName,GuildLevel=@GuildLevel,Str,[Int],Rec,Dex,Wis,Luc,HP,MP,SP,StatPoint,SkillPoint,Exp,[Money],K1,K2,K3,K4,Map,PosX,PosY,PosZ,RegDate,DeleteDate,JoinDate,LeaveDate, 
    OldCharName 
    FROM '+ @Table+' 
    WHERE CharID = '+@CharID EXEC sp_executesql @Query, N'@GuildName varchar(100), @GuildLevel tinyint', @GuildName, @GuildLevel 
    set nocount off 
    set transaction isolation level read committed 
    --提示你存储过程缺少下面的对象
    'usp_Char_R','usp_GM_CreateUser','usp_Inven_R','usp_Quest_R','usp_Skill_R','usp_Store_R'
    --有可能是你执行多个存储过程,他们之间有调用,而你执行顺序有问题。
    --有可能是你存储过程中用的的表或是函数不存在。--就你上面给出的这个存储过程根本用不上上面这些对象。