2013-04-01 131 views
0

我有一个很大的SQL查询,我想使用该查询的如何将多个值作为参数传递给sql语句?

declare @Period VARCHAR(10) = 'MTD' 
declare @Date DATETIME = '2011-08-31' 

拉出来一些数据,我有一个大select statement在那里我通过上面的参数,并执行输出。

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

如何将这些日期通过以上参数declare @Date DATETIME我该如何硬编码?

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

+1

你想用10个参数运行一次查询,还是用1个不同的参数运行查询10次? – Axarydax

+0

目前我正在运行sql查询10次手动放置不同的日期,并看到结果 但我想要的东西通过使用我可以声明变量的这10个日期declare @DATE DATETIME,它给了我结果。 像我们一样使用''之间''键入两个参数 – Neo

回答

6

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

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 

然后从你的应用程序,你可以在通过这个参数作为DataTable,例如。

+0

示例缺失请填写它。 非常感谢:) – Neo

+0

示例缺失请完成它。 不在应用:(我想直接执行这个sql查询。 非常感谢:) – Neo

+0

@ashuthinks你需要提供更多信息。你的SQL查询如何得到你想检查的日期列表?他们必须从某个地方来。 –

相关问题