2010-03-01 50 views
1

請訪問http://www.stumbleupon.com/如何將此信息傳遞給SQL Server 2008?

它會問你有什麼興趣。

我會在我的網站上有類似的事情,除非我需要有4個這樣的不相同的塊。當用戶沒有選擇某個部分中的任何內容時,表示他/她已經選擇了全部內容。其中1個塊將有大約10個選項,而其他3個塊每個都有2-3個選項。

如何將用戶選擇的所有內容傳遞給SQL Server 2008?請注意,我將有4組多個參數,這4組基本上是4行中的所有包含整數id的列。當且僅當通過一個參數時,我會做類似

select * from table where column1 = @ param1,column2 = @ param2等等。

但事實並非如此,因爲用戶可以爲@ param1傳遞多個值等等。

我可以做到這一點,但我想知道最有效的方法。

如果我的帖子不清楚,請讓我知道。編輯: 基本上,如果我在數據庫中存儲文章,我有4行,每個整數的列。我想根據這4列來查詢這些文章,但是我們需要傳遞這些列的多個值,而不是每列只有一個值。

回答

1

如果您的客戶端語言支持的話,你應該看看錶值參數:

http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters

,如果你不能使用這些,看看一個關於數組和列表中TSQL:

http://www.sommarskog.se/arrays-in-sql.html

這是動態搜索條件TSQL一個非常全面的清單:

http://www.sommarskog.se/dyn-search.html

這也可以幫助:

Sane/fast method to pass variable parameter lists to SqlServer2008 stored procedure

0

嘗試將所有參數值轉儲到XML中,然後將其傳遞給SQL Server,然後在查詢中解析它。

0

不會在此情況下,這樣的查詢工作?

SELECT * 
FROM TABLE 
WHERE COLUMN1 IN (@param11, @param12, @param13) 
     AND COLUMN2 IN (@param21, @param22, @param23) 

等等。