0

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

非常感谢。


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

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

1 回答 1

1

我认为您可以从触发器中调用xp_cmdshell 。


编辑:如评论中所述,每个数据修改语句仅触发一次触发器。(请参阅在线书籍。)因此,如果您有一个影响 100 行的更新语句,则触发器只会触发一次,而不是 100 次。这应该照顾你的前两点(更新,插入)。

触发器不会在 bcp 上触发。但是 bcp 应该从命令行发生,所以不知道为什么你不会在每个 bcp 命令之后添加你的 shell 脚本?

这里有一些关于从触发器调用 xp_cmdshell 的更多信息。

一些进一步的评论:你还没有真正描述你的环境或你想要完成的事情。如果您在 OLTP 环境中,则必须确保您的 shell 脚本在表同时发生多个更新时可以正常工作。如果 3 个用户同时进行更新,如果其中三个用户同时运行,您的脚本是否仍然有效?如果您将此作为某种 OLAP 或批处理系统的一部分,我不确定您为什么不将 shell 脚本添加到作业流程中。

于 2008-12-12T23:18:04.910 回答