Вот мой код хранимой процедуры. Когда я запускаю этот код со всеми необходимыми параметрами, я получаю ошибку
Имя столбца или количество предоставленных значений не соответствует определению таблицы
Кто-нибудь может дать мне подсказку о том, что не так с этим 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;