Я пытаюсь написать триггер в SQL, и код внутри должен определить, существует ли запись в таблице, прежде чем пытаться обновить или вставить.
Я пытался использовать оба
IF EXISTS
UPDATE
ELSE
INSERT
И
UPDATE
IF @@ROWCOUNT = 0
INSERT
Но ни один из них не работает.Я неравнодушен к последним, потому что мой работодатель сходит с ума по эффективности (ну ... да ...) По этой причине я также неохотно использую
IF SELECT COUNT(*) = 0
UPDATE
ELSE
INSERT
Кто-нибудь знает какие-либо способыобойти это?
-
ОБНОВЛЕНИЕ: я пытаюсь использовать MERGE, но я получаю несколько ошибок ...
MERGE INTO [tableName] AS Target
USING (SELECT :NEW.PIDM) AS Source (PIDM)
ON (Target.PIDM = Source.PIDM)
WHEN MATCHED THEN
[UPDATE STATEMENT]
WHEN NOT MATCHED THEN
[INSERT STATEMENT]
Это дает мне ошибкус жалобой на то, что мне не хватает ключевого слова «USING», а также с другой жалобой на утверждение WHEN ...