2012-01-05 55 views
0

我在數據庫中有10個字段,並且在我的UI頁面中有10個不同的按鈕。我試圖單獨更新我的數據庫字段。當我點擊1按鈕時,它會更新一個字段和第二個另一個等,但只使用一個SQL更新查詢。這是可能的SQL服務器2008 如果是的話,請提出建議。使用單個SQL查詢更新具有不同類型值的多行

Thnx

回答

1

試試這個

UPDATE yourtable set 
    field1 = COALESCE(@Button1Param, field1), 
    field2 = COALESCE(@Button2Param, field2), 
    ... 
    field10 = COALESCE(@Button10Param, field10) 
WHERE Your filter clause 

並按下Button1的當只對@ Button1Param參數查詢提供價值,留下其他= DBNull.Value

所以,你還沒有使用動態或多個不同查詢

0

只有通過動態SQL,仍然不是微不足道的。

您需要連接到該說,它代表了列每個按鈕的代碼,所以您的查詢將看起來像

DECLARE @SQL = NVARCHAR(MAX) 
SET @SQL = 'UPDATE [db].[dbo].[table] SET ' + @__upd_button_col + ' = ''' + @__upd_button_Value + ''' WHERE ID = ''' + @__upd_ID + '''' 
sp_executesql @SQL 

然而,這是非常糟糕的設計(除非你的要求特別要求)。你爲什麼不編輯你的10個字段,然後在你的應用程序中有-one- commit按鈕並且一次更新所有列?

相關問題