我有一个存储过程,用于一个如此庞大的视图,它总是超时,它用于查找某些日期范围的数据。这对我来说是一个全新的概念,我为主要日期范围设置了存储过程,如果我需要特定日期,我只是不知道如何正确执行它。这是代码和问题
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[COL_Run_DOM_Parameters]
@StartDate varchar (50),
@EndDate varchar (50)
AS
SET NOCOUNT ON
SELECT *
FROM dbo.COL_V_GEMS_DOM_FCT
WHERE REC_EFF_STT_DT BETWEEN '2010-01-01' AND '2012-12-31'
Run Code Online (Sandbox Code Playgroud)
当我执行时,我会这样做:
Execute COL_Run_DOM_Parameters @StartDate = '2011-12-22', @EndDate '2012-05-17'
Run Code Online (Sandbox Code Playgroud)
但是当我执行它时,它仍然给了我 2010 年到 2012 年之间的所有数据,而不是我要求的日期范围。我的代码哪里有错误?
您需要更改查询以引用参数!
ALTER PROCEDURE [dbo].[COL_Run_DOM_Parameters]
@StartDate varchar (50),
@EndDate varchar (50)
AS
SET NOCOUNT ON
SELECT *
FROM dbo.COL_V_GEMS_DOM_FCT
WHERE REC_EFF_STT_DT BETWEEN @StartDate and @EndDate
Run Code Online (Sandbox Code Playgroud)
像你一样执行。