我有一個關於通過t-sql更新表的問題。客戶可能想要更新一列中的一列,並保持其餘的不變或他可能想要更新多列。所以我有兩種解決方案:一個t-sql存儲過程和更新整個表或
創建一個sp並更新整個表。客戶端必須提供所有的參數,即使他想要更新一行中的單個列,所以如果他沒有參數的話他必須通過(他必須)...原來的值將會丟失。作爲一種解決方法,我可以使用條件來檢查空參數(基於條件的不同命令)。但是還有另外一個問題,我怎麼能識別一個int參數?我的意思是假設我們有一個int列,它可以包含任何整數值,包括零,所以客戶端應該發送什麼樣的消息來表示「這不是一個新值,而是保持現有值」。
爲每列創建一個sp。客戶端將使用適當的sp來更新一行中的單個列,所以如果他想更新多個列,他可以一個接一個地調用每個相關的sp,並傳遞兩個參數,它們是行ID和新值。如果我有一個包含25個可更新列的表?天啊! 25更新sp只是一張桌子!
是否必須爲每個表列創建更新sp?或者創建一個採用所有行參數並更新整個表的sp?什麼是編寫更新程序的事實標準?
EDIT1:我正在使用sql server 2005與前端c#和asp.net應用程序,但我想在t-sql中做到這一點。
您正在使用什麼版本的SQL Server? – Oded