问题标签 [triggers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
25860 浏览

wpf - WPF 样式触发器

我在 Style 触发器中更改了 Text 的 FontSize,这会导致包含文本的 Control 也调整大小。如何在不影响父级大小的情况下更改字体大小?

0 投票
3 回答
6372 浏览

sql-server - SQL Server:修改“应用程序名称”属性以进行审核

由于我们没有将应用程序的用户实现为 SQL 服务器中的用户,因此当应用程序服务器连接到数据库时,每个应用程序始终使用相同的凭据来附加到每个数据库。

这提出了一个审计问题。使用触发器,我们希望存储每个更新、插入和删除,并将每个更新、插入和删除都归因于特定用户。一种可能的解决方案是向每个表添加一个“由用户更新”列,并每次都更新它。这意味着每个表上都有一个新列,每个存储过程上都有一个新参数。这也意味着您只能进行软删除。

相反,我建议使用连接字符串的应用程序名称属性并使用触发器内的 App_Name() 属性读取它。我用一个简单的应用程序对此进行了测试,它似乎可以工作(格式可以是:App=MyApp|User=100)。

你们的问题是,这是一个坏主意吗?你们有更好的主意吗?

0 投票
6 回答
183817 浏览

mysql - MySQL 触发器 - 将 SELECT 存储在变量中

我有一个触发器,我希望有一个变量来保存我从 a 获得的 INT SELECT,所以我可以在两个 IF 语句中使用它,而不是调用SELECT两次。您如何在 MySQL 触发器中声明/使用变量?

0 投票
2 回答
1416 浏览

sql-server - MS SQL 问题 - 字段长度受到限制

我有一个带有各种表的 MS SQL DB,特别是一个字段让我很伤心。

数据类型设置为 varchar(100),但该字段限制为 60 个字符。

如果我尝试将任何超过 60 个字符的字符串放入字段中,则会出现异常,“字符串或二进制数据将被截断”。尽管字符串比显式设置的数据类型短,但它仍然会引发异常。

也许有一个数据库设置可以做到这一点?什么可能导致显式设置的数据类型被覆盖?

编辑:
触发器不复制值或将其插入另一个表,它们也不使用数据。- (不正确)

小于 60 个字符的字符串可以正常工作。

所有具有 varchar(100) 的列都会出现相同的问题,但所有其他列都接受正确的值。varchar(10) 列工作正常。

如果我尝试使用超过 60 个字符的字符串更新字段,则此表中的任何行都会引发异常。

我正在尝试使用 SQL Server Management Studio 将数据直接插入到字段中。

不涉及填充。

回答:

第二个表的列设置为 60。更新触发器称为存储过程,将数据插入“非规范化”表。

感谢所有的帮助。

0 投票
11 回答
35804 浏览

sql-server - SQL Server 历史表 - 通过 SP 或触发器填充?

在我的应用程序的 SQL Server 后端中,我想为我的一组关键表创建历史表,这将跟踪行更改的历史记录。

我的整个应用程序使用存储过程,没有嵌入式 SQL。修改这些表的唯一数据库连接将是通过应用程序和 SP 接口。传统上,我合作过的商店使用触发器执行此任务。

如果我可以在存储过程和触发器之间进行选择,哪个更好?哪个更快?

0 投票
2 回答
3550 浏览

database - SQL Server 2005 触发器 - 如何安全地确定是由 UPDATE 还是 DELETE 触发?

我在 SQL Server 2005 触发器中有以下代码:

我的问题:是否存在未正确填充 @OperationType 的情况?EG:表中的数据被一堆UPDATE/DELETE语句改变了,但是触发器不是每个都触发一次?

您是否有更好的方法来确定触发器是由 UPDATE 还是 DELETE 语句触发的?

0 投票
2 回答
308 浏览

c# - 有谁知道如何在 C# 中从已经运行的 cctray 进程中监听构建事件?

我已经制作了一个 C# 应用程序,我想知道是否可以利用 cctray(巡航控制托盘)的构建事件?我不想重新发明轮子,我只想知道我的构建何时失败或成功(在客户端计算机上),以便我的自定义 C# 应用程序可以执行一组特定的例程。

0 投票
1 回答
391 浏览

mysql - 类似 Twitter 的“关注用户”和“观看这个”问题

处理多对多触发关系的最佳方法是什么,例如 Twitter“关注此用户”问题。

我对用户“观看”线程的回复有类似的问题。如果有 10,000 个用户在观看一个帖子,并且有人回复,那么如何最好地通知观看者?我能想到的只有以下几点:

插入后,检查“监视表”[字段:user_id,thread_id] 是否有任何匹配此线程 ID 的线程。这是我需要通知的用户列表。对于每个需要通知的用户,在“通知表”[字段:user_id、message、addon 等]中插入一行。现在我可以通过这个表向任何用户显示他们的通知。

问题是,这一切听起来非常非常昂贵。尤其是 10,000 刀片部分。

必须有更好的方法来做到这一点......想法?

0 投票
10 回答
1049 浏览

sql - 使用外键向数据库添加新项目时,是否应该使用 SQL 触发器在其他表中创建相关行?

我正在使用 SQL 2005 实现具有车辆表、车辆发动机和车辆齿轮表的数据库设计。

每个表都有一个 ID,它是一个 SQL 标识号,每个引擎和齿轮都与车辆 ID 有关系。因此,在我创建车辆之前,我必须创建引擎和齿轮。

创建引擎和齿轮时如何知道车辆识别号?由于发动机和齿轮表的外键约束,尚未创建车辆行?

我是否应该实施一个自动触发器,在创建车辆时为连接到车辆的发动机和齿轮创建一个空行?但是我又怎么知道车辆ID呢?

0 投票
1 回答
1089 浏览

scripting - Sybase 12.5 中表数据发生变化时如何调用脚本?

操作系统是 UNIX。当表中的数据发生变化时,我想调用一个 shell 脚本来进行外部验证。有没有可能,如果有,怎么做。

非常感谢。


更新:理想情况下,我想为任何离散操作调用一次我的外部脚本:即

  • 更新... > 调用脚本一次
  • 插入... > 调用脚本一次
  • bcp into > 调用脚本一次