moh*_*111 3 sql t-sql sql-server
我有两个表Test和TestHistory
CREATE TABLE [dbo].[TEST](
[ID] [int] NULL,
[Name] [varchar](10) NULL,
[Status] [char](1) NULL,
[CreatedDate] [datetime] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[Test_History](
[ID] [int] NULL,
[Name] [varchar](10) NULL,
[Status] [char](1) NULL,
[CreatedDate] [datetime] NULL
) ON [PRIMARY]
GO
INSERT INTO TEST ([ID],[Name],[Status],[CreatedDate])values (1,'Mohan','A',GETDATE())
Run Code Online (Sandbox Code Playgroud)
创建的触发器:
ALTER TRIGGER [dbo].[trg_Test]
ON [dbo].[TEST]
FOR UPDATE
AS
Declare @ID INT;
Declare @Name varchar(10);
Declare @Status CHAR(2);
Declare @CreatedDate DATETIME;
Select @ID = I.ID from INSERTED I
Select @Name = I.Name from INSERTED I
Select @Status = I.Status from INSERTED I
Select @CreatedDate = I.CreatedDate from INSERTED I
INSERT INTO [dbo].[Test_history]
([ID]
,[Name]
,[Status]
,[CreatedDate]
)
SELECT @ID,
@Name,
@Status,
GETDATE()
FROM INSERTED I
WHERE @ID = [ID]
Run Code Online (Sandbox Code Playgroud)
当我更新记录时
Update [TEST] SET Status = 'I'那么Status = 'A'应该插入旧记录, 但是我正在更新它的内容已经插入到Testhistory表而不是旧记录中我做错了以及如何插入旧值
就像我更新Status = 'I' 并在历史表Status = 'A'中插入
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |