[英]SQL Server stored procedure that requires varchar param not working as expected
我對SQL還是很陌生,所以請原諒任何無知的問題。
這是我的存儲過程:
ALTER PROCEDURE [dbo].[search_highlights]
@page INT = 1,
@recsPerPage INT = 20,
@query NVARCHAR(MAX) = ''
AS
BEGIN
SET NOCOUNT ON
DECLARE @FirstRec AS INT = (@page - 1) * @recsPerPage,
@LastRec AS INT = (@page * @recsPerPage + 1)
SELECT
[id],
[datetime],
[player_ids], [player_names],
[headline], [duration],
[blurb], [bigblurb],
[thumb_s], [thumb_m], [thumb_l],
[video_s], [video_m], [video_l],
[gameid],
[team_id], [team_name]
FROM
(SELECT
[id],
[datetime],
[player_ids], [player_names],
[headline],
[duration],
[blurb], [bigblurb],
[thumb_s], [thumb_m], [thumb_l],
[video_s], [video_m], [video_l],
[gameid],
[team_id], [team_name],
ROW_NUMBER() OVER (ORDER BY datetime DESC) AS rn
FROM
[bbt].[dbo].[highlights]
WHERE
CONTAINS((player_names, headline, blurb, bigblurb, team_name), @query)
) hp
WHERE
rn BETWEEN @FirstRec AND @LastRec
ORDER BY
datetime DESC
END
我試圖像這樣調用存儲過程:
EXEC [dbo].[search_highlights] 1, 20, '"double play"'
運行該命令時,出現以下錯誤:
消息7630,級別15,狀態2,過程dbo.search_highlights,第13行[批處理開始第0行]
在全文搜索條件“””中,“”附近的語法錯誤。
當我嘗試不帶"
,錯誤消失了,但是即使我應該得到結果,也沒有得到結果。
救命?
在SQL Server中,您需要定義字符串的長度(在大多數情況下,默認值是1)。
因此,將存儲過程定義為:
ALTER PROCEDURE [dbo].[search_highlights] (
@page int = 1,
@recsPerPage int = 20,
@query VARCHAR(max) = ''
) AS . . .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.