我有.NET代码创建一个事务,在这个事务中,它执行插入/更新,然后进行验证。如果验证失败,则会抛出异常以回滚更改。
我需要在此VB.NET代码中添加验证规则,该规则需要检查当前状态和行的先前状态(即:插入/更新之前的状态)。基本上,我的验证规则允许从A-> B但不是B-> A的状态转换。
如何查询当前事务之外的行的状态?换句话说,我可以在插入/更新之前查询行的状态吗?
答案 0 :(得分:0)
您还可以使用返回值创建存储过程。在存储过程中,您应首先选择要更新的行,分配要返回的变量,继续更新(您也可以在此处验证),然后返回分配的变量,如下所示:
DECLARE @MyTableVar table(Name varchar(50),Age int);
DECLARE @Name,
@Age
BEGIN
SET @Name = (SELECT Name from YourTable WHERE ID=1)
SET @Age = (SELECT Age from YourTable WHERE ID=1)
-- Here goes your update statement..
END
RETURN @MyTableVar