【问题标题】:trigger for inserting data into a table将数据插入表的触发器
【发布时间】:2015-03-29 23:04:39
【问题描述】:

大家好,我正在尝试做一个触发语句(我之前没有做过任何事情)所以我基本上希望使用以下代码将值插入到表和 m 中,但它不起作用任何帮助都会对我有好处,谢谢提前:代码 m 使用如下:

CREATE TRIGGER updatemovie
           ON movies
           FOR INSERT
           AS
           BEGIN
           INSERT INTO movies values (
            movieID, movieName, movieTime,   movieDate, movieTime,   movieType, Duration, ratings)

           END

我要更新的表是:

CREATE TABLE movies( 
movieID int IDENTITY (1,1)NOT NULL,  
movieName varchar (50),
movieTime Time,
movieDate Date, 
movieType varchar (20),
duration varchar (10),
rating varchar (10),
PRIMARY KEY (perID),   
);

【问题讨论】:

    标签: sql-server sql-server-2008 triggers insert-update


    【解决方案1】:

    触发器将允许您根据条件取消更新/插入/删除,或者允许您保留更新/插入/删除的记录。因此,如果您有第二张表(审计),您可以执行以下操作:

    更新/插入/删除

    CREATE TRIGGER updatemovie
               ON movies
               FOR INSERT
               AS
               BEGIN
               INSERT INTO movies_audit values (
                inserted.movieID, inserted.movieName,  inserted.movieTime,    inserted.movieDate,  inserted.movieTime,    inserted.movieType,  inserted.Duration,  inserted.ratings)
           END
    

    插入的表是自动创建的,并且包含(在触发期间)刚刚插入的行。

    【讨论】:

    • 谢谢本杰明,但我没有其他桌子了!没有正确理解所以电影表将如何更新?由于插入语句包含movies_audit 表?
    • 为什么要使用触发器?您只想在电影表中输入数据吗?
    • 这只是使用触发器更新/插入表的要求,但我不知道触发器是如何操作的,我在过去的一天或 2 中一直在尝试
    • 您需要检查触发器是什么以及它们是如何工作的。您确定该要求与更新/插入时使用触发器的要求不同
    • 我确实了解它们是什么以及它们是如何工作的,但我没有让其他桌子参与电影!例如,如果我想更新 Movies 表中已经存在的电影,那么我想使用触发器而不是编写查询来更新它!如果这有意义?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    相关资源
    最近更新 更多