我想要触发插入触发器 [英] I want insert trigger to be fired
问题描述
创建桌子书
(
BOOKNAME VARCHAR(20)
,AUTHOR VARCHAR(20)
)
插入书籍
(书签,作者)
VALUES('Famous five','rlstine')
,('Goosebumps','Thomas hardy')
,('Harry potter','JKRowling')
GO
------------------------------------------------- -------------------------------------------------- --------------------------------------------------
CREATE TABLE BOOK1
(
BOOKNAME VARCHAR(20)
,AUTHOR VARCHAR(20)>
)
GO
创建 TRIGGER TRI_BOOK
ON BOOKS
FOR INSERT
AS
DECLARE @BOOKNAME VARCHAR ( 20 ), @AUTHOR VARCHAR ( 20 )
SELECT @ BOOKNAME , @ AUTHOR 插入插入
/ * 如果出现(从BOOKS中选择BOOKNAME
WHERE AUTHOR = @AUTHOR
)* /
INSERT INTO BOOK1(BOOKNAME,AUTHOR)
VALUES ( @ BOOKNAME , @ AUTHOR )
SELECT BOOKNAME,AUTHOR FROM inserted
PRINT ' INSERT TRIGGER FIRED'
GO
触发器中的代码看起来有点奇怪。请尝试这样的事情:
创建 TRIGGER TRI_BOOK
ON BOOKS
FOR INSERT
AS
BEGIN
< span class =code-keyword> INSERT INTO BOOK1(BOOKNAME,AUTHOR) SELECT BOOKNAME,AUTHOR FROM 已插入;
PRINT ' INSERT TRIGGER FIRED'
END
GO
CREATE TABLE BOOKS
(
BOOKNAME VARCHAR(20)
,AUTHOR VARCHAR(20)
)
INSERT INTO BOOKS
(BOOKNAME,AUTHOR)
VALUES('Famous five','r.l.stine')
,('Goosebumps','Thomas hardy')
,('Harry potter','J.K.Rowling')
GO
-----------------------------------------------------------------------------------------------------------------------------------------------------
CREATE TABLE BOOK1
(
BOOKNAME VARCHAR(20)
,AUTHOR VARCHAR(20)
)
GO
CREATE TRIGGER TRI_BOOK
ON BOOKS
FOR INSERT
AS
DECLARE @BOOKNAME VARCHAR(20),@AUTHOR VARCHAR(20)
SELECT @BOOKNAME,@AUTHOR FROM inserted
/*IF EXISTS(SELECT BOOKNAME FROM BOOKS
WHERE AUTHOR = @AUTHOR
) */
INSERT INTO BOOK1(BOOKNAME,AUTHOR)
VALUES(@BOOKNAME,@AUTHOR)
SELECT BOOKNAME,AUTHOR FROM inserted
PRINT 'INSERT TRIGGER FIRED'
GO
The code in the trigger looks a bit odd. Try something like this instead:
CREATE TRIGGER TRI_BOOK ON BOOKS FOR INSERT AS BEGIN INSERT INTO BOOK1 (BOOKNAME, AUTHOR) SELECT BOOKNAME, AUTHOR FROM inserted; PRINT 'INSERT TRIGGER FIRED' END GO
这篇关于我想要触发插入触发器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!