如何为此信息创建触发器。我只需要一个触发器。 [英] How do I create a trigger for this information. I only need one trigger.

查看:92
本文介绍了如何为此信息创建触发器。我只需要一个触发器。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

******来自SSMS的SelectTopNRows命令脚本****** / SELECT TOP 1000 [Cust_name]

,[Cust_no]

,[Cust_address]

,[Cust_city]

,[Cust_state]

,[Cust_zip]

,[Cust_cc_type]

,[Cust_email]

来自[ITCO630_GP3]。[dbo]。[Customer_Table]



/ ******来自SSMS的SelectTopNRows命令的脚本****** /

SELECT TOP 1000 [Emp_name]

,[Emp_no ]

,[Emp_address]

,[Emp_city]

,[Emp_state]

,[Emp_zip]

,[Emp_payrate]

,[Emp_startdate]

,[Emp_position]

来自[ITCO630_GP3]。[dbo ]。[Employee_Table]



/ ******来自SSMS的SelectTopNRows命令的脚本****** /

SELECT TOP 1000 [movie_name]

,[movie_catagory] ​​

,[movie_year]

,[mo vie_actor]

,[movie_rating]

FROM [ITCO630_GP3]。[dbo]。[Movie_Table]



/ ******来自SSMS的SelectTopNRows命令脚本****** /

SELECT TOP 1000 [Rental_rate_blueray]

,[Rental_rate_dvd]

,[Rental_date]

,[rental_duedate]

来自[ITCO630_GP3]。[dbo]。[Rental_Table]

****** Script for SelectTopNRows command from SSMS ******/SELECT TOP 1000 [Cust_name]
,[Cust_no]
,[Cust_address]
,[Cust_city]
,[Cust_state]
,[Cust_zip]
,[Cust_cc_type]
,[Cust_email]
FROM [ITCO630_GP3].[dbo].[Customer_Table]

/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP 1000 [Emp_name]
,[Emp_no]
,[Emp_address]
,[Emp_city]
,[Emp_state]
,[Emp_zip]
,[Emp_payrate]
,[Emp_startdate]
,[Emp_position]
FROM [ITCO630_GP3].[dbo].[Employee_Table]

/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP 1000 [movie_name]
,[movie_catagory]
,[movie_year]
,[movie_actor]
,[movie_rating]
FROM [ITCO630_GP3].[dbo].[Movie_Table]

/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP 1000 [Rental_rate_blueray]
,[Rental_rate_dvd]
,[Rental_date]
,[rental_duedate]
FROM [ITCO630_GP3].[dbo].[Rental_Table]

推荐答案

您不能为四个表运行一个触发器。您可以编写一个用户定义的函数并有四个调用它的触发器,如果​​您想集中代码,但是您不能编写一个基于四个不同表中的select语句调用的触发器,它就不会那样工作。事实上,你根本无法触发选择(因为没有实际发生',没有数据被更改)。因此,您需要编写存储过程以进行选择,如果您希望使代码更易于维护,您仍然可以将操作集中在UDF中。
You can't have one trigger that is run for four tables. You could write a user defined function and have four triggers that call it, if you want to centralise your code, but you can't write one trigger that is called based on select statements in four different tables, it does not work that way. In fact, you can't trigger on a select at all ( as nothing actually 'happens', no data is changed ). So, you'd need to write stored procs to do your selects, and you can still centralise your actions in a UDF if you want to make your code easier to maintain.


CREATE TRIGGER trgAfterUpdate ON  dbo.tblEmployee
FOR UPDATE
AS

    if update(EmployeeLock)
        insert into tblLog value(put the values here)


GO


这篇关于如何为此信息创建触发器。我只需要一个触发器。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆