【问题标题】:Issue with delete triggers - SQL Server 2005删除触发器问题 - SQL Server 2005
【发布时间】:2011-09-06 12:11:51
【问题描述】:

我在 SQL 表中有两个字段 LastModifiedBy 和 DateLastModified。使用 ADO.net,我正在修改这些字段并调用 AcceptChanges 函数将这些更改提交到数据集(而不是数据库)。然后我在数据行上调用 Delete 函数。然后我调用适配器上的更新函数。从技术上讲,数据行现在在上面提到的两个字段中都有值,并且它们被提交到数据集,但是 SQL Server 删除触发器仍然显示这些字段中的值是空的。这怎么可能?

问候, 桑托什

【问题讨论】:

    标签: .net sql-server ado.net triggers dataset


    【解决方案1】:

    因为几个问题:

    • 您修改字段然后调用AcceptChanges = datasets 认为这些数据已保存到数据库,但他们没有!
    • 您删除了该行,但删除不会导致将更改传递到数据库。它只是为数据库中行的当前状态调用 delete。

    所以你必须将操作分为两个步骤:

    • 修改字段并更新对数据库的更改 - 它将字段​​写入记录
    • 删除行并更新对数据库的更改 - 它将删除已传递字段的记录

    在单笔交易中完成。

    【讨论】:

    • 非常感谢!我现在了解删除操作实际发生的情况。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 2013-05-25
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多