я получаю сообщение об ошибке с возвращаемым значением в моем скрипте sql хранимых процедур - PullRequest
0 голосов
/ 06 февраля 2020

Я получаю 'предложение TOP или FETCH содержит недопустимое значение' эта ошибка

"Msg 1014, Niveau 15, État 1, Procédure dbo.sp_contacts_getcontacts, Ligne 24 [Ligne de départ du lot 0] A Предложение TOP или FETCH содержит недопустимое значение. "

Я хочу получить контакты с помощью хранимой процедуры, это код SP

( @Id     uniqueidentifier  = NULL,
    @role   nvarchar(max)     = NULL,
    @IdCompany    uniqueidentifier  = NULL,
    @Active   bit     = 0, 
    @Page  int    = NULL,
    @PerPage   int  = NULL,


)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON
    -- Insert statements for procedure here
     SELECT * 
     FROM [dbo].[Contacts] 
     LEFT JOIN [dbo].[Companies]    
     ON Contacts.[IdCompany] =  Companies.[IdCompany]
     WHERE
          (@Id is null or @Id = [IdContact])
    AND   (@role is null  or @role=contacts.[Role])
    AND   (@IdCompany  is null or @IdCompany  = [IdCompany])
    AND   (@Active = 0 or @Active = [Active])

    ORDER BY [IdContact] OFFSET ((@Page - 1) * @PerPage) ROWS FETCH NEXT @PerPage ROWS ONLY

END

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Я мог бы неправильно понять ваш вопрос. Если вы хотите получить результаты этого выбора, вам понадобится переменная таблицы, которая соответствует выводу spro c для вставки в.

DECLARE @someTable TABLE(
    /* Whatever the output is of the sproc */
)

INSERT INTO @someTable
EXEC @return_value = dbo.nameOfYourSproc

Вы также можете попробовать создать временную таблицу из результаты

INSERT INTO #someTable
EXEC @return_value = dbo.nameOfYourSproc

Хотя я рекомендую превратить SPRO C в табличную функцию.

0 голосов
/ 06 марта 2020

Код был верным, я просто не вставил значения для страницы и страницы, таким образом он показывает ошибку «FETCH ...»

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