У меня есть SQL CHECK CONSTRAINT
, который проверяет значения на основе значения столбца (расположенного в другом TABLE ->, поэтому FK не является опцией).
В основном что-то вроде:
--Function
CREATE FUNCTION [dbo].[func_CHECK_ID_EXISTS]
(
if ...
return 1
else return 0
)
--CHECK CONSTRAINT
ALTER TABLE [dbo].[MY_TABLE]
ADD CONSTRAINT CHECK_ID_EXISTS
CHECK ([dbo].[func_CHECK_ID_EXISTS](MyColumn)=1);
Это работает отлично.
Теперь мне нужно, чтобы это развивалось.
При обновлении мне нужно было бы сделать такую же проверку целостности, что и до (based on MyTable2.A)
. Но на insert
мне нужно сделать проверку целостности на основе другого столбца (based on MyTable2.B)
.
Насколько я знаю, ни SQL function func_CHECK_ID_EXISTS
, ни ограничение CHECK_ID_E enter code here
XISTS не знает, еслиэлемент вставляется или обновляется, верно?
Так что check constraint
, кажется, больше не вариант ...
Я имел в виду альтернативное решение с update trigger
и insert trigger
. Действительно, я могу установить различные условия в each trigger
.
Но хотя insert trigger
может проверять вставленный элемент через псевдостол INSERTED, я думаю, что у меня нет такой возможности для UPDATE trigger
.
Я имею в виду, нет UPDATED pseudo table
, это правильно?
Так есть ли возможность сравнить столбцы обновленного элемента в пределах update trigger
?