日期:2014-05-18  浏览次数:20517 次

MSSQL 2005中触发器的IF UPDATE问题
前台使用的是EXT.NET(EXTJS3.4),后台使用ASP,用EXT的GridPanel绑定SqlDataSource操作数据,一切正常。现在我在表中安装一个触发器,用“IF UPDATE(Name)来判断Name字段是否被修改,但在调试中发现,不管我在前台(WEB)是否修改Name列的值,数据库中的判断都为真,然后我debug了SqlDataSource的Updating事件,发现SqlDataSource的paramters中包含了我在Store中定义的所有字段,即使这些字段没有出现在SqlDataSource的<asp:Paramters>定义中(这个是在SqlDataSource的UpdateCommand中使用存储过程发现的,参数带了所有的字段,使得我的存储过程参数不对,数据库提示参数过多,我只得在Updating事件中所把有参数清除了,然后添加我需要的参数)。我现在有两个问题:
1. 在SqlDataSource的Updating中发现的,带所有字段而不是按我在<asp:Paramters>节中定我的字段的问题,是EXT的Store引起的,还是SqlDataSource本来就是这样,如果真是这样的话,那<asp:Paramters>还有什么意义?
2. 我最初对数据库中Update(name)的理解是,这个值没有被修改,它就为假,但实际不是这样的,我现在怀疑的是,只要在是UPDATE语句中包含了字段name,如UPDATE XX SET Name=@Name where XXX就会引直Update(name)为真,而不管这个值是否跟原值相同。

请大虾指导。

------解决方案--------------------
探讨

Google太牛逼了,才几分钟我就搜到自己的问题了