我从我的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