0
Я пытаюсь написать запрос, который вместо ошибки:Try-Catch Сообщение об ошибке Ограничение внешнего ключа
INSERT statement conflicted with the FOREIGN KEY constraint...`
я могу иметь свою собственную ошибку. Что-то вроде:
< Value > does not exist on < table_name >
TEST TABLE1: TEST TABLE2
Col1 PK tinyint Col2 PK tinyint
Col2 FK tinyint
Я сделал следующий триггер как тест:
CREATE TRIGGER [dbo].[CHECK_INSERT]
FOR INSERT
ON TABLE1
AS
BEGIN
DECLARE @loop AS TINYINT
DECLARE @col1 AS TINYINT
DECLARE @col2 AS TINYINT
SELECT @loop = MIN (col1) FROM INSERTED
SELECT @col1 = col1 FROM INSERTED WHERE col1 = @loop
SELECT @col2 = col2 FROM INSERTED WHERE col1 = @loop
IF NOT EXISTS (SELECT col2 FROM TABLE2 WHERE col2 = @col2)
AND ERROR_NUMBER() = 547
BEGIN
RAISERROR('%s does not exists on Table2', 16, 1, CAST(@col2 AS VARCHAR(3))
ROLLBACK TRANSACTION
END
END
Как я могу справиться с этой ошибкой? Спасибо.