Я создал следующий триггер для вставки в таблицу удаленных пользователей, соответствующая запись должна быть удалена из таблицы userlogin.
Триггер включает в себя следующие операторы:
CREATE TRIGGER trgInsert_ToDeleteFromUserLogin on DELETEDUSER
FOR INSERT
AS
BEGIN
DECLARE
@UserName nvarchar(50),
@UserType nvarchar(30),
@Reason nvarchar(max)
SELECT @UserName = USERNAME, @UserType = UserType, @Reason = Reason FROM INSERTED
INSERT INTO DELETEDUSER (USERNAME,USERTYPE,REASON) VALUES(@USERNAME,@USERTYPE,@REASON)
DELETE FROM USERLOGIN WHERE USERNAME = @UserName
end
Но когда я вставляю запись в таблицу удаленных пользователей, соответствующая запись удаляется из таблицы userlogin, но не добавляется в таблицу удаленных пользователей.
Приведенный выше триггер не генерирует никаких ошибок, однако, когда я пытаюсь вставить запись в таблицу удаленных пользователей, я замечаю, что запись удаляется из таблицы UserLogin, но она не вставляется в таблицу DeletedUser.
Для справки, я включаю структуру таблицы для удаленного пользователя и userlogin следующим образом:
Deleted User
CREATE TABLE DELETEDUSER
(
DeletedUserID int identity(1,1),
UserName nvarchar(max),
UserType nvarchar(30),
Reason nvarchar(max)
)
--ALTERING DELETEDUSER TABLE TO SPECIFY THE SIZE OF USERNAME COLUMN FOR IMPOSING FOREIGN KEY CONSTRAINT
ALTER TABLE DELETEDUSER ALTER COLUMN UserName nvarchar(50)
--ALTERING DELETEDUSER TABLE TO ADD FOREIGN KEY CONSTRAINT
ALTER TABLE DELETEDUSER ADD CONSTRAINT fk_UserName Foreign key (UserName) references UserLogin(UserName) on delete cascade
USERLOGIN TABLE:
CREATE TABLE USERLOGIN
(
UserID int identity(1,1) not null,
UserName nvarchar(50) not null,
Password nvarchar(50) not null
)
--ALTER TABLE USERREGISTRATION TO ADD PRIMARYKEY
ALTER TABLE USERLOGIN ADD CONSTRAINT pk_UserName primary key(UserName)
Пожалуйста, помогите мне с изменениями, которые я должен внести, чтобы вставить строку в таблицу удаленных пользователей и удалить (удалить) ее из таблицы userlogin.
Заранее спасибо!