这是我的存储过程:
ALTER PROCEDURE [dbo].[procViewAdvSearchL1]
-- Add the parameters for the stored procedure here
@keyword nvarchar(800),
@CourtID int = null,
@SYear int = null,
@EYear int = null
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[viewTextSearchL]'))
DROP VIEW [dbo].[viewTextSearchL]
Declare @sqlquery nvarchar(1500)
Set @sqlquery ='
CREATE VIEW viewTextSearchL
AS
SELECT tblCase.judgement_id AS ID, tblCase.case_number AS Case_No, tblCase.applicant_name AS Aplicant, tblCase.respondent_name AS Respondent, tblCase.case_date AS Case_Date,
tblCourt.court_name AS Court_Name, tblCase.YearOfCase
FROM tblCase INNER JOIN
tblCourt ON tblCase.court_id = tblCourt.court_id INNER JOIN
tblJudgement ON tblCase.judgement_id = tblJudgement.judgement_id
WHERE CONTAINS(tblJudgement.judgement_desc,'+@keyword+') AND (CAST(tblCase.YearOfCase AS int) BETWEEN '+@SYear+' AND '+@EYear+')'
EXECUTE(@sqlquery)
END
但这会产生错误
消息 137,级别 15,状态 2,过程 viewTextSearchL,第 9 行
必须声明标量变量“@SYear”。