我在數據庫中有10個字段,並且在我的UI頁面中有10個不同的按鈕。我試圖單獨更新我的數據庫字段。當我點擊1按鈕時,它會更新一個字段和第二個另一個等,但只使用一個SQL更新查詢。這是可能的SQL服務器2008 如果是的話,請提出建議。使用單個SQL查詢更新具有不同類型值的多行
Thnx
我在數據庫中有10個字段,並且在我的UI頁面中有10個不同的按鈕。我試圖單獨更新我的數據庫字段。當我點擊1按鈕時,它會更新一個字段和第二個另一個等,但只使用一個SQL更新查詢。這是可能的SQL服務器2008 如果是的話,請提出建議。使用單個SQL查詢更新具有不同類型值的多行
Thnx
試試這個
UPDATE yourtable set
field1 = COALESCE(@Button1Param, field1),
field2 = COALESCE(@Button2Param, field2),
...
field10 = COALESCE(@Button10Param, field10)
WHERE Your filter clause
並按下Button1的當只對@ Button1Param參數查詢提供價值,留下其他= DBNull.Value
所以,你還沒有使用動態或多個不同查詢
只有通過動態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按鈕並且一次更新所有列?