Имя столбца или числовое значение не совпадают с ошибкой хранимой процедуры - PullRequest
0 голосов
/ 08 июля 2019

Вот мой код хранимой процедуры. Когда я запускаю этот код со всеми необходимыми параметрами, я получаю ошибку

Имя столбца или количество предоставленных значений не соответствует определению таблицы

Кто-нибудь может дать мне подсказку о том, что не так с этим SQL?

Примечание. Я использую Microsoft SQL Server.

USE [TestDataBase]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[GetProductsByKeyword] 
    @Keyword NVARCHAR(255) = NULL,
    @MinPrice FLOAT = NULL,
    @MaxPrice FLOAT = NULL,
    @MaxNumberOfSales FLOAT = NULL,
    @MinNumberOfSales FLOAT = NULL
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @ItemsTable TABLE (title NVARCHAR(255))

    DECLARE @Query NVARCHAR(MAX)

    SET @Query='select top 500 * from Products where ID in (SELECT TOP 10000 CAST(KEY_TBL.[KEY] AS BIGINT) FROM CONTAINSTABLE (Products, Title, '+char(39)+@Keyword++char(39)+') AS KEY_TBL ORDER BY RANK DESC)'

    PRINT @Query

    INSERT INTO @ItemsTable 
        EXEC sp_Executesql @Query


    SELECT * FROM @ItemsTable           

    SET NOCOUNT OFF;
END;

1 Ответ

2 голосов
/ 08 июля 2019

Может показаться, что ваш запрос "select top 500 * ..." возвращает больше столбцов, чем может обработать ваша табличная переменная. Измените * на один столбец или измените определение табличной переменной, чтобы охватить выходные данные запроса

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