Мне нужен совет по коду,
при распечатке предложений наша ERP-программа генерирует идентификационный номер в таблице "Angebot" в формате AYYNNNNN, эта маска задается в административных настройках, но такжеимеет возможность переопределить этот номер и установить ручной, что вызывает много проблем, так как люди, как правило, ломают счетчик идентификаторов.
Я хотел бы создать триггер, который отправляет сообщение, когда идентификационный номер не в правильном формате, поэтому я должен проверить правильность этого конкретного столбца.
Элемент if проверяет следующее:
if (Angebotsnr NOT LIKE 'A'+RIGHT(DATEPART(yy,getdate())+'_____') then RAISEERROR
В базе данных уже существует триггер, который проверяет что-то еще, поэтому мне нужно только добавить вторую проверку, чтобы убедиться, чтоэто правильно, но куда бы я поместил оператор if и как его проверить?
Это код существующего триггера:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[ANGEBOT_ITrig] ON [dbo].[Angebot] FOR INSERT AS
SET NOCOUNT ON
/* * KEINE EINFÜGUNG BEI FEHLEN EINES PASSENDEN SCHLÜSSELS IN 'ErlGrp' */
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM ErlGrp, inserted WHERE (ErlGrp.ABTNR = inserted.ABTEILUNG))
BEGIN
RAISERROR ( 'Some error statement',0,0)
ROLLBACK TRANSACTION
END
Действие будет таким же,просто с другим сообщением об ошибке.Может кто-нибудь указать мне правильное направление.
Спасибо.