У меня есть две таблицы:SQL Server ВМЕСТО сбоя запуска INSERT
CREATE TABLE users
(
id int PRIMARY KEY IDENTITY,
firstname varchar(30),
lastname varchar(30),
age int
)
CREATE TABLE rejectedUsers
(
id int PRIMARY KEY IDENTITY,
firstname nvarchar,
lastname nvarchar,
age nvarchar
)
и триггер:
CREATE TRIGGER checkNumeric
ON users
INSTEAD OF INSERT
AS
INSERT INTO users SELECT firstname, lastname, age FROM inserted WHERE ISNUMERIC(age) = 1;
INSERT INTO rejectedUsers SELECT firstname, lastname, age FROM inserted WHERE ISNUMERIC(age) = 0;
-- goes fine
INSERT INTO users
VALUES
('Vlad', 'P', 21)
-- fails
INSERT INTO users
VALUES
('Chuck', 'Norris', 'abc')
Второе утверждение бросает мне ошибку:
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'abc' to data type int.
Я ожидаю триггер для выполнения вставки на rejectedUsers
, что случилось?
Может быть глупый вопрос, но возможно, что триггер включает четыре вставных оператора, а не два? Я замечаю, что у вас нет 'GO' там ... –