我從我的DAL調用更新SPROC,傳遞表中的所有(!)字段作爲參數。對於最大的表,這是總共78. 我通過所有這些參數,即使可能只是一個值更改。SPROC更新記錄:如何處理不變的值
這似乎相當inefficent給我,我想知道,怎樣做的更好。
我可以定義所有的參數爲可選的,只有通過改變的,但我的DAL不知道哪個值發生了變化,因爲我只是路過它的模型 - 對象。
我可以做餐桌上的選擇updateing之前和比較值來找出哪些改變,但是這可能是辦法不多開銷,也(?)
我有點困在這裏...我對你對此的看法很感興趣。
編輯:忘了提:我使用C#(速成版)與2008年的SQL(也快速)。 DAL我寫了「我自己」(使用this文章)。 它可能不是最新的最先進的方式(從2006年開始,「Linq之前」就這麼說,但Linq僅適用於Express的本地SQL實例),但我的主要目標是學習C#,所以我想這不是太糟糕。
您使用哪種語言? – 2009-09-21 11:18:52
我很好奇你將如何編寫sproc來處理變量列的修改集。你打算動態生成更新語句嗎? – 2009-09-21 12:00:49
我會做這樣的事情: CREATE PROCEDURE UpdateSomething \t @something VARCHAR(50)= NULL \t AS BEGIN BEGIN TRANSACTION \t IF @something IS NOT NULL UPDATE TBLTEST SET東西= '富' COMMIT \t END 不知道如果這是不好的,這就是爲什麼我問 – 2009-09-22 09:44:51