У меня есть таблица Sample
и еще один SampleLog
С этой структурой я хочу написать коды для входа. Мои коды вы можете увидеть после структур таблиц
CREATE TABLE [dbo].[Sample](
[ID] [int] NULL,
[Name] [varchar](10) NULL
)
CREATE TABLE [dbo].[SampleLog](
[ID] [int] NULL,
[Name] [varchar](10) NULL,
[Date] [datetime] NULL,
[UserName] [varchar](100) NULL,
[Type] [char](1) NULL
)
Я написал этот код, но он не работает для удаления и обновления.
CREATE TRIGGER SampleTrigger ON Sample
AFTER INSERT, UPDATE, DELETE
AS
DECLARE
@ID int ,
@Name varchar(10),
@Date datetime,
@UserName VARCHAR(128) ,
@Type CHAR(1) ,
@sql nvarchar(500)
SELECT
@UserName = SYSTEM_USER ,
@Date = CONVERT(VARCHAR(8), GETDATE(), 112)
+ ' ' + CONVERT(VARCHAR(12), GETDATE(), 114)
IF EXISTS (SELECT * FROM inserted)
BEGIN
IF EXISTS (SELECT * FROM deleted)
BEGIN
SELECT @Type = 'U'
select @ID = ID from deleted
select @Name = Name from deleted
END
ELSE
BEGIN
SELECT @Type = 'I'
select @ID = ID from inserted
select @Name = Name from inserted
END
END
ELSE
BEGIN
SELECT @Type = 'D'
select @ID = ID from deleted
select @Name = Name from deleted
END
insert into SampleLog(ID, Name, Date, UserName, Type)
values(@ID, @Name, @Date, @UserName, @Type)
SQL Server выдает мне эту ошибку
Обновленные или удаленные значения строк либо не делают строку уникальной, либо изменяют несколько строк (2 строки)