PDA

View Full Version : استفاده از فایل Log



Marjan_pr
چهارشنبه 30 بهمن 1387, 00:36 صبح
لطفا دستوراتی که برای استفاده از فایل Log لازمه رو بگین ( یا یه مرجع دقیق معرفی کنین )

میخوام نحوه ثبت ، تاریخ و ساعت ثبت و اطلاعات وارد شده به رکورد های یه جدول خاص رو بدونم
( مشکلم اینه که من چند تا رکورد تکراری دارم ، نمیدونم کاربر اینارو وارد کرده و یا کدنویسیم ایراد داشته )

mdrd
چهارشنبه 30 بهمن 1387, 00:57 صبح
چیزی که میخواین خیلی کلیه و بسته به نوع لاگی که میخواین تولید کنین بستگی داره ..یکی از روشها استفاده از DDL TRIGGER ها هست مثل کد زیر


IF OBJECT_ID('dbo.AuditDDLEvents') IS NOT NULL
DROP TABLE dbo.AuditDDLEvents;
GO

CREATE TABLE dbo.AuditDDLEvents
(
lsn INT NOT NULL IDENTITY,
posttime DATETIME NOT NULL,
eventtype sysname NOT NULL,
loginname sysname NOT NULL,
schemaname sysname NOT NULL,
objectname sysname NOT NULL,
targetobjectname sysname NOT NULL,
eventdata XML NOT NULL,
CONSTRAINT PK_AuditDDLEvents PRIMARY KEY(lsn)
);
GO

CREATE TRIGGER trg_audit_ddl_events ON DATABASE FOR DDL_DATABASE_LEVEL_EVENTS
AS

DECLARE @eventdata AS XML;
SET @eventdata = eventdata();

INSERT INTO dbo.AuditDDLEvents(
posttime, eventtype, loginname, schemaname,
objectname, targetobjectname, eventdata)
VALUES(
CAST(@eventdata.query('data(//PostTime)') AS VARCHAR(23)),
CAST(@eventdata.query('data(//EventType)') AS sysname),
CAST(@eventdata.query('data(//LoginName)') AS sysname),
CAST(@eventdata.query('data(//SchemaName)') AS sysname),
CAST(@eventdata.query('data(//ObjectName)') AS sysname),
CAST(@eventdata.query('data(//TargetObjectName)') AS sysname),
@eventdata);
GO

----------------------------------------------------------------------------
CREATE TABLE dbo.T1(col1 INT NOT NULL PRIMARY KEY);
ALTER TABLE dbo.T1 ADD col2 INT NULL;
ALTER TABLE dbo.T1 ALTER COLUMN col2 INT NOT NULL;
CREATE NONCLUSTERED INDEX idx1 ON dbo.T1(col2);
----------------------------------------------------------------------------
SELECT * FROM dbo.AuditDDLEvents;


این سه مرحله رو به ترتیب انجام بدین نتیجش یه نوع لاگ میشه

Marjan_pr
چهارشنبه 30 بهمن 1387, 12:19 عصر
ممنونم از توجهتون ، ولی برای من خیلی نامفهومه ( مبتدی ام ) ، میشه ساده تر بگین ، من سابقه درج رکوردها در یک جدول رو در یه زمان خاص میخوام ( مثلا در ساعت 8:00 در جدول 1 چه رکورد هایی (همراه با اطلاعات فیلدها) اضافه شده اند ؟ ) ،
باز هم متشکرم .