Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 选择时触发_Sql Server_Select_Triggers - Fatal编程技术网

Sql server 选择时触发

Sql server 选择时触发,sql-server,select,triggers,Sql Server,Select,Triggers,我不熟悉触发器,在SQLServer中从数据库表中选择值时需要触发触发器。我尝试在插入/更新和删除时触发触发器。选择值时有没有触发触发器的方法?我知道只有两种方法可以执行此操作,但两种方法都不是触发器 您可以使用存储过程来运行查询,并将查询记录到表和其他您想知道的信息中 您可以使用SQL Server的 我从未使用过后者,所以我不能说它的易用性。不,没有关于选择操作的触发器的规定。正如前面的回答中所建议的,编写一个存储过程,该过程使用从SEECT查询中获取的参数,并在所需的SELECT查询之后调

我不熟悉触发器,在SQLServer中从数据库表中选择值时需要触发触发器。我尝试在插入/更新和删除时触发触发器。选择值时有没有触发触发器的方法?

我知道只有两种方法可以执行此操作,但两种方法都不是触发器

  • 您可以使用存储过程来运行查询,并将查询记录到表和其他您想知道的信息中
  • 您可以使用SQL Server的

  • 我从未使用过后者,所以我不能说它的易用性。

    不,没有关于选择操作的触发器的规定。正如前面的回答中所建议的,编写一个存储过程,该过程使用从SEECT查询中获取的参数,并在所需的SELECT查询之后调用此过程。

    SpectralGhost的回答假设您正在尝试对查看哪些数据的人员或内容进行安全审计


    但是,如果您对sql足够陌生,不知道SELECT触发器在概念上是愚蠢的,那么您可能正在尝试做其他事情,在这种情况下,您实际上是在谈论锁定而不是审核—即,一旦一个进程读取了某个特定记录,您就想阻止其他进程访问它(或者可能是另一个表中的一些其他相关记录),直到事务被提交或回滚。在这种情况下,触发器肯定不是您的解决方案(它们很少是)。请参阅有关事务控制和锁定的BOL

    查马拉是询问者。您可能是指其他人?请原谅-我的错误。这应该是SpectralGhost的答案。我认为这是出于审计目的(不一定是安全性)因为我想不出任何情况下你会想要这些信息。至于担心事务被提交,如果正确使用锁和读取级别,这不应该是一个问题。仅仅因为你想不出一个特性的原因并不能让有理由的人愚蠢。我没有足够的空间发表评论分享我的使用案例,但我向您保证,这不是愚蠢的,如果存在这样的事情,选择触发器将是一个极好的解决方案。提示:有时实体可以访问DDL的代码,但不能访问DML。他们可以添加/更改/删除数据库触发器,但不能访问应用程序本身。我承认,让自己进入其中iTunes是愚蠢的,但很多企业都这么做。受雇于这种情况的人需要一个解决方案。