У меня есть таблица Sample
и другого SampleLog
Создание LOG для таблиц в SQL Server
С этими структурами я хочу написать коды для входа. Вы можете видеть мои коды после структур таблиц
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 дает мне эту ошибку
Значения строк updateed или удален, либо не делать строку уникальный или они изменяют несколько строк (2 строки)
Пожалуйста, просмотрите приемочные и голосования ставки: уважать тех, кто поможет вам, отвечая на ваши вопросы ... – gbn
Просто в сторону - почему все эти даты разборе, чтобы поместить его в столбец даты и времени в любом случае? Это бессмысленно. Кроме того, люди с большей вероятностью помогут вам принять некоторые ответы. – Bridge