您能帮我开始这个吗?
我有一个具有这种格式的表:
CREATE TABLE [dbo].[ACS_ARMAZEM]
(
[ARM_ID] [INT] IDENTITY(20000,1) NOT NULL,
[ARM_DES] [NVARCHAR](50) NOT NULL,
[ARM_5_COD_DIG] [NVARCHAR](5) NOT NULL,
[ARM_SIT] [INT] NOT NULL,
[ARM_BIZ_TIP] [INT] NOT NULL,
[ARM_STK_CTRL] [INT] NOT NULL,
[ARM_DAT_CRI] [DATE] NOT NULL,
)
我需要将所有更改(插入,删除或更新)记录到我拥有的日志表中。
但是我想记录新旧值(即使插入了新行,我也想在旧列中将其记录为null)。
最诚挚的问候,
RL
答案 0 :(得分:1)
简而言之,您需要使用插入和删除的表。 即。
对于插入/更新:
UPDATE [YourTable]
SET [YourColumn] = i + 1
OUTPUT deleted.[YourColumn], inserted.[YourColumn] INTO [YourLogTable]
WHERE i = 1;
(在这里,删除将给出旧值,插入将给出新值)
要删除:
DELETE from [YourTable]
OUTPUT deleted.[YourColumn], NULL INTO [YourLogTable]
WHERE i = 2;
当然,您将需要修改语句以与您的日志表结构匹配。 请告诉我是否有帮助。 :)