Я хочу сгенерировать PK через триггер, поскольку он является обычным PK.sql server trigger for custom PK
Это как в зависимости от поля типа члена, я хочу сгенерировать идентификатор члена, который является PK.
например. если тип члена новой записи - DGIA, тогда идентификатор участника будет DGIA1, DGIA2, DGIA3 ... и т. д. ... если тип члена - DGIL, то идентификатор участника будет DGIL1, DGIL2, DGIL3 ... и так далее. ..
Итак, как написать триггер для того же ... Я пробовал как следует, но он работает только для 1-й записи.
ALTER TRIGGER [dbo].[next_member_id] ON [dbo].[DAD_MEMBERSHIP] AFTER INSERT
AS
BEGIN
DECLARE @COUNT INT
SET @COUNT=0;
SELECT @COUNT=ISNULL(MAX(CAST(SUBSTRING(DAD_MEMBERSHIP.MEMBER_ID,5,15) AS INT)),0)+1 FROM DAD_MEMBERSHIP where DAD_MEMBERSHIP.MEMBER_TYPE = DAD_MEMBERSHIP.MEMBER_TYPE
update DAD_MEMBERSHIP set DAD_MEMBERSHIP.MEMBER_ID = DAD_MEMBERSHIP.MEMBER_TYPE + CONVERT(varchar,@COUNT)
from DAD_MEMBERSHIP inner join inserted on DAD_MEMBERSHIP.MEMBER_TYPE = inserted.MEMBER_TYPE
END
что вы имеете в виду, работая только на 1-й записи? Вы вставляете несколько записей в одну и ту же партию? – Diego