Я создаю хранимую процедуру для возврата title
некоторых продуктов из имени таблицы с именем Products
. Таблица Products
содержит столбец с именем title
. На моем сервере sql уже включен полнотекстовый индекс для таблицы Product
и столбца с именем title
. Ниже дан голый запрос-
SELECT TOP 10000 KEY_TBL.[KEY] FROM CONTAINSTABLE (Products, Title, 'pot') AS KEY_TBL ORDER BY RANK DESC
Примечание: pot
- это ключевое слово, и я использую Microsoft SQL Server
Таким образом, в основном он вернет идентификатор продукта с марширующим ключевым словом pot
в заголовке. И если я сейчас выполню запрос выше, то результат будет похож на ниже-
https://ibb.co/XJ9GHtC
Теперь я вставил этот запрос в хранимую процедуру, как показано ниже. Но проблема в том, что мой запрос возвращает только идентификатор продукта, а не его название, поэтому мне нужно выполнить цикл, хотя эти идентификаторы продукта затем возвращают название продукта в качестве вывода для этой хранимой процедуры. Но запрос ниже не работает, так как я пропускаю часть цикла. Кто-нибудь может дать мне подсказку, как мне этого добиться? Таким образом, вывод вернет название продукта, а не его идентификатор ключа?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetProductsByKeyword]
@Keyword nvarchar(255) = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ItemsTable TABLE(
title nvarchar(250)
)
DECLARE @Query NVARCHAR(MAX)
SET @Query='SELECT TOP 10000 KEY_TBL.[KEY] FROM CONTAINSTABLE (Products, Title, @Keyword) AS KEY_TBL ORDER BY RANK DESC'
SELECT * FROM @ItemsTable
SET NOCOUNT OFF;
END;