FOR INSERT & INSTEAD trong trigger, sql server?
mình có 1 câu hỏi
viết trigger
<img src="//daynhauhoc.s3-ap-southeast-1.amazonaws.com/original/2X/f/f3ee7a41f191e6518293912153e20fdbd6a0381a.JPG" width=“636” height=“33”
bảng VATTU
mình làm như sau
USE KHACHHANG
GO
CREATE TRIGGER TRIGGER_TEST
ON VATTU
FOR INSERT
AS
BEGIN
IF EXISTS (SELECT * FROM inserted WHERE inserted.TENVT IN
(
SELECT TENVT
FROM VATTU
))
BEGIN
PRINT N'Không được chèn 2 vật tư có cùng tên'
ROLLBACK TRANSACTION
END
END
Làm theo cách trên
khi mình chèn dữ liệu
USE KHACHHANG
GO
INSERT INTO VATTU(MAVT, TENVT) VALUES ('0000','XI MANG')
USE KHACHHANG
GO
INSERT INTO VATTU(MAVT, TENVT) VALUES ('0000','AA')
dù tên VATTU đã tồn tại hay chưa tồn tại thì đề bị lỗi
Không được chèn 2 vật tư có cùng tên'
theo mình tìm hiểu thì FOR INSERT nó sẽ chèn dữ liệu trước khi kiểm tra trigger
mô tả
nên mình thử INSTEAD OF INSERT thay cho FOR INSERT thì k bị báo lỗi nữa, và chạy query insert thành công
khi thêm dữ liệu
sql báo
…arow(s) affected …
nhưng khi xem trong bảng VATTU thì dữ liệu đã chèn k có, vẫn y nguyên như khi chưa chèn, mình đã refresh bảng nhưng vẫn k có
lỗi ở đâu nhỉ
xincamon
help me ,help me
help me ,help me help me