процедура или функция '' ожидает параметр '', который не был предоставлен - PullRequest
0 голосов
/ 26 апреля 2018

пожалуйста, как решить эту проблему. Сообщение об ошибке:

процедура или функция 'ROHAN_GetPKList' ожидает параметр '@char_id', который не был предоставлен

У меня SP

ALTER procedure [dbo].[ROHAN_GetPKList]
    @char_id    int
as      
set nocount on      
select top 100 k.pk_char_id,  c.[name], k.pk_char_type, k.pk_second, k.isKill, k.PKRecall, k.RecallRecharge, k.mode_type
    from TKill k, TCharacter c  
    where k.pk_char_id = c.[id] 
        and k.char_id = @char_id
        and c.[user_id] > 0
    order by k.[date]   

return @@error  

а это таблица 'TKill'

    [char_id] [int] NOT NULL,
    [pk_char_id] [int] NOT NULL,
    [pk_char_type] [int] NOT NULL,
    [pk_second] [int] NOT NULL,
    [isKill] [tinyint] NOT NULL,
    [PKRecall] [tinyint] NOT NULL,
    [RecallRecharge] [tinyint] NOT NULL,
    [date] [smalldatetime] NOT NULL,
    [mode_type] [int] NOT NULL

а это таблица "TCharacter"

    [id] [int] IDENTITY(1000,1) NOT NULL,
    [name] [nvarchar](20) NULL,
    [ctype_id] [int] NOT NULL,
    [cface_id] [int] NOT NULL,
    [chair_id] [int] NOT NULL,
    [user_id] [int] NOT NULL,
    [mode] [tinyint] NOT NULL,
    [create_date] [datetime] NOT NULL,
    [flag] [tinyint] NOT NULL,
    [cstyle_type] [tinyint] NOT NULL,
    [cstyle_index] [tinyint] NOT NULL,
    [world_id] [tinyint] NOT NULL,
    [reward_time] [int] NOT NULL,
    [isSelling] [int] NULL,
    [pvppoint] [int] NULL,
    [pvppointoa] [int] NULL,

1 Ответ

0 голосов
/ 26 апреля 2018

Ваша ошибка будет выглядеть, когда процедура называется , а не когда она определена. Но я бы предложил написать код как:

alter procedure [dbo].[ROHAN_GetPKList] (
    @char_id    int  -- something called "char_id" with a type of "int" is strange
) as 
begin     
    set nocount on;  

    select top 100 k.pk_char_id, c.[name], k.pk_char_type, k.pk_second, k.isKill, k.PKRecall, k.RecallRecharge, k.mode_type
    from TKill k join
         TCharacter c  
         on k.pk_char_id = c.id
    where k.char_id = @char_id and c.user_id > 0
    order by k.[date]; 
    return @@error;
end;  -- ROHAN_GetPKList

Обратите внимание на использование BEGIN / END и правильный синтаксис JOIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...