Примерчик, пожалуйста:
CREATE TRIGGER AlbumRoleInsert ON AlbumRole INSTEAD OF INSERT AS
BEGIN
DECLARE @ALB INT, @PRF INT, @ROL VARCHAR(500), @mas INT, @pla BIT, @mem BIT
SELECT @ALB = Album, @mas = Master, @PRF = Performer, @pla = Play, @mem = Member, @ROL = Role
FROM Inserted
DECLARE @ID INT, @RLR VARCHAR(500)
-- Есть запись?
IF EXISTS( SELECT * FROM AlbumRole WHERE (Album = @ALB) AND (Performer = @PRF)) BEGIN
SELECT @ID = ID, @RLR = Role FROM AlbumRole WHERE (Album = @ALB) AND (Performer = @PRF)
-- Есть роль?
IF ( CHARINDEX( @ROL, @RLR) = 0 ) BEGIN
-- Обновление списка.
SET @RLR = @RLR + ', ' + @ROL
UPDATE AlbumRole SET Role = @RLR WHERE ID = @ID
END
END ELSE
-- Добавление:
INSERT INTO AlbumRole ( Album, Master, Performer, Play, Member, Role )
VALUES( @ALB, @mas, @PRF, @pla, @mem, @ROL )
END
--
GO
|