필드 가 업데이트 되 었 는 지 여 부 를 판단 하여 Audit Log 표 에 기록 합 니 다.
Audit
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Audit](
[Audit_nbr] [int] IDENTITY(1,1) NOT NULL,
[AuditType] [char](1) NOT NULL,
[TableName] [nvarchar](128) NOT NULL,
[FieldName] [nvarchar](128) NULL,
[OldValue] [nvarchar](4000) NULL,
[NewValue] [nvarchar](4000) NULL,
[UserName] [nvarchar](128) NULL,
[CreateDate] [datetime] NOT NULL,
PRIMARY KEY CLUSTERED
(
[Audit_nbr] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Audit] WITH CHECK ADD CHECK (([AuditType]='D' OR [AuditType]='U' OR [AuditType]='I'))
GO
ALTER TABLE [dbo].[Audit] ADD DEFAULT (getdate()) FOR [CreateDate]
GO
누가 데 이 터 를 업데이트 하 는 지 해결 하려 면 이 방법 을 사용 하 십시오SQL 트리거 나 저장 과정 에서 프로그램 로그 인 사용 자 를 가 져 옵 니 다.다음은 추적 표를 위해 Trigger 트리거 를 업데이트 하 는 것 입 니 다.트리거 에서 INSERTED 나 DELETED 의 내부 임시 터치 발 표를 방문 하면 이상 invalid object name'inserted'또는 invalid object name'deleted'를 얻 을 수 있 습 니 다.이 문 제 를 해결 하려 면 이 편 을 참고 하 십시오.여러 표 나 한 표 가 업데이트 되 거나 삭제 되면 추적 할 데 이 터 를 Audit Log 표 에 삽입 해 야 할 때 유지 보수 와 코드 가 불필요 하기 때문에 Audit Log 표 에 삽입 하 는 과정 을 저장 과정 으로 기록 합 니 다
--@N @O , ,
DECLARE @sql NVARCHAR(MAX),@N DECIMAL(18,0),@O DECIMAL(18,0)
--@I
SET @sql = N'SELECT @N = ['+ CONVERT(NVARCHAR(MAX),@I) +'] FROM #inserted'
-- SQL 。
EXECUTE sp_executesql @sql,
N'@N DECIMAL(18,0) OUTPUT',
@N OUTPUT;
-- SQL , deleted 。
SET @sql = N'SELECT @O = ['+ CONVERT(NVARCHAR(MAX),@I) +'] FROM #deleted'
EXECUTE sp_executesql @sql,
N'@O DECIMAL(18,0) OUTPUT',
@O OUTPUT;
-- , , , Audit Log 。
IF (ISNULL(@N,0) <> ISNULL(@O,0))
EXECUTE [dbo].[usp_Audit_Insert] 'U','<tableName>','<fieldName>',@O,@N,@UserName
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
mongoDB에서 투영을 사용하여'추가'필드를 제거하는 작업 과정실제 개발 과정에서 개발자의 포지셔닝 문제에 편리하도록 여러 개의 추가 필드가 존재한다.예를 들어createdAt, updatedAt 필드를 추가하여 데이터의 생성과 변경 시간을 확인합니다.클라이언트에게는 존재를 알...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.