カスタムPKなのでトリガー経由でPKを生成したい。
メンバータイプフィールドに応じて、PKであるメンバーIDを生成したいようなものです。
たとえば、新しいレコードのメンバー タイプが DGIA の場合、メンバー ID は DGIA1、DGIA2、DGIA3 などになります。メンバー タイプが DGIL の場合、メンバー ID は 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