小编Bla*_*Man的帖子

在触发器内返回,安全吗?

我正在尝试查找有关触发器内 RETURN 效果的信息。我能找到的唯一文档是它“释放”触发器。

https://learn.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql?view=sql-server-2017#optimizing-dml-triggers

我问的原因是最近添加的触发器导致了一些死锁问题,即使触发器为空也是如此。

这些示例非常荒谬(为什么要检索刚刚插入的数据),但这就是它的工作方式。生成这些语句的代码非常古老。

“空”触发器的主体

BEGIN
    SET NOCOUNT ON;
END
Run Code Online (Sandbox Code Playgroud)

表 1 上启用了空触发器

BEGIN TRANSACTION
    INSERT INTO Table1....                 -- Table1 becomes locked until transaction is committed

    SELECT * FROM Table1 WHERE ID = X...   -- deadlock

    INSERT INTO Table2...
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

空触发器已禁用

BEGIN TRANSACTION
    INSERT INTO Table1....                 -- Table1 DOES NOT BECOME LOCKED

    SELECT * FROM Table1 WHERE ID = X...

    INSERT INTO Table2...
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

在触发器末尾添加 RETURN 会释放锁,从而防止死锁。

这安全吗?我唯一能想到的是如果触发器修改了它所在的表,释放锁可能会导致脏读。

t-sql sql-server database-trigger

3
推荐指数
1
解决办法
9720
查看次数

jquery.val()返回undefined

出于某种原因,可能是一个明显的原因,jquery.val()返回undefined.有人可以指出我做错了什么吗?

<input class=".start" id="Project_StartDate" name="Project.StartDate" value="6.9.2013 0:00:00" type="hidden"/>

$(".start").val() <---- Returns undefined
Run Code Online (Sandbox Code Playgroud)

更好的例子:http://jsfiddle.net/DvfxF/16/

html javascript jquery

0
推荐指数
1
解决办法
591
查看次数

标签 统计

database-trigger ×1

html ×1

javascript ×1

jquery ×1

sql-server ×1

t-sql ×1