2013-04-01 134 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查詢如何得到你想檢查的日期列表?他們必須從某個地方來。 –

相關問題