У меня есть таблица, определенная как этотКак проверить данные перед вставкой/обновлением с помощью SQL Server?
CREATE TABLE [dbo].[ObjectRelationClauses]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[RelationId] INT NOT NULL,
[OperatorType] NVARCHAR(3) NOT NULL,
[LocalPropertyId] INT NOT NULL,
[ForeignPropertyId] INT NULL,
[ForeignValue] VARCHAR(255) NULL,
[ParentClauseId] INT NULL
)
мне нужно быть в состоянии вызвать ошибку, если значение обоего ForeignPropertyId
и ForeignValue
колонн и null
, в противном случае я хочу, чтобы выполнить операцию.
Вот что я пытался
CREATE TRIGGER [dbo].[Trigger_ObjectRelationClauses]
ON [dbo].[ObjectRelationClauses]
FOR INSERT, UPDATE
AS
BEGIN
SET NoCount ON
IF(ForeignPropertyId IS NULL AND ForeignValue IS NULL)
BEGIN
RAISERROR('Either ForeignPropertyId or ForeignValue must be provided to perform this action!')
END
END
, но это дает мне ошибку синтаксиса. Возможно, неправильный способ использования RAISERROR
.
Как правильно добавить триггер для проверки данных на INSERT
и UPDATE
?
использование ошибки тяжести или номер ошибки внутри [функция RAISERROR] (https://technet.microsoft.com/en-us/library/ms177497 (v = sql.105) .aspx) ИЛИ выписать чек ограничение вместо триггера – jfun