如何将多个值作为参数传递给sql语句?

如何将多个值作为参数传递给sql语句?,sql,sql-server-2008,tsql,select,stored-procedures,Sql,Sql Server 2008,Tsql,Select,Stored Procedures,我有一个大的SQL查询,我想使用该查询提取一些数据 declare @Period VARCHAR(10) = 'MTD' declare @Date DATETIME = '2011-08-31' 我有一个大的select语句,在这里我传递上述参数,它执行输出 现在我有10个不同的日期,我需要通过这里每次看到结果 如何将这些日期传递给上述参数declare@date DATETIME如何硬编码 所以我想要的输出将是那些选定的日期,请给我至少3个日期的提示?使用表值参数。首先,创建一个类型:

我有一个大的SQL查询,我想使用该查询提取一些数据

declare @Period VARCHAR(10)  = 'MTD'
declare @Date DATETIME = '2011-08-31'
我有一个大的
select语句
,在这里我传递上述参数,它执行输出

现在我有10个不同的日期,我需要通过这里每次看到结果

如何将这些日期传递给上述参数
declare@date DATETIME
如何硬编码


所以我想要的输出将是那些选定的日期,请给我至少3个日期的提示?

使用表值参数。首先,创建一个类型:

CREATE TYPE dbo.Dates AS TABLE(d DATE);
现在,存储过程可以将此类型作为参数:

CREATE PROCEDURE dbo.whatever
  @d dbo.Dates READONLY
AS
BEGIN
  SET NOCOUNT ON;

  SELECT t.columns
    FROM dbo.tableName AS t
    INNER JOIN @d AS d
    ON t.[date] = d.d;
END
GO

然后,从应用程序中,您可以将此参数作为
数据表
传入,例如。

使用表值参数。首先,创建一个类型:

CREATE TYPE dbo.Dates AS TABLE(d DATE);
现在,存储过程可以将此类型作为参数:

CREATE PROCEDURE dbo.whatever
  @d dbo.Dates READONLY
AS
BEGIN
  SET NOCOUNT ON;

  SELECT t.columns
    FROM dbo.tableName AS t
    INNER JOIN @d AS d
    ON t.[date] = d.d;
END
GO

然后从应用程序中,您可以将此参数作为
数据表传入,例如。

您想使用10个参数运行查询一次,还是使用1个不同的参数运行查询10次?目前,我正在通过手动输入不同的日期来运行sql查询10次,并查看结果,但是我想通过使用declare@Date-DATETIME变量来声明这10个日期,它会给我结果。就像我们对两个参数使用
Between
keywork一样,您是想用10个参数运行一次查询,还是用一个不同的参数运行10次查询?目前我正在通过手动放置不同的日期来运行sql查询10次,并查看结果,但是我想通过使用declare@Date-DATETIME变量来声明这10个日期,它会给我结果。就像我们在两个参数之间使用
键一样,缺少示例,请完成它。非常感谢:)示例缺失,请完成它。不在应用程序中:(我想直接执行此sql查询。非常感谢:)@ashuthink您需要提供更多信息。SQL查询如何获取要检查的日期列表?他们必须来自某个地方。缺少示例,请填写。非常感谢:)示例缺失,请完成它。不在应用程序中:(我想直接执行此sql查询。非常感谢:)@ashuthink您需要提供更多信息。SQL查询如何获取要检查的日期列表?他们一定是从什么地方来的。