如何建trace你看看帮助就知,对于第二种办法,看看 create trigger ttt on table1 for delete as insert into log_table (user,fdate) select hostname, getdate() 具体自己调一下---- 不过如果你公开了sa密码,别人同样可以破掉,建议更改连接,添加密码,不要使用sa
create trigger ttt on table1 for delete as insert into log_table (user,fdate) select hostname, getdate()从哪里看出来你记录下来IP地址了呢?能不能具体的解释一下,我看不懂
create trigger ttt on table1 for delete as insert into log_table (user,fdate) select hostname, getdate() 这段代码在哪里用?能具体的举个例子吗?方便的话再解释一下,成功过后马上给分
我平時的做法是:建立一個日志表,表的結構和數據表的結構一樣,並且還加上幾個字段:DelDate(默認值設為:(getdate()) ,取得操作日期), HostName(默認值設為:(host_name()) ,這個函數可以取得計算機名稱), OperateType(紀錄操作的類型,添加?修改?刪除?), 並在日志表去掉所有的約束(比如主鍵什麼的)。然後做觸發器。我估計你不怎麼會用觸發器,所以以SQL數據庫為例說明:直接在Enterprise的數據庫的Tables列表裡面右鍵點數據表,選擇“所有工作”----“Manage Triggers” 然後就可以編輯觸發器代碼了。代碼如下 CREATE TRIGGER [TRIGGER_DELETE_NAME] ON [dbo].[TABLE_NAME] FOR DELETE --或者是INSERT,UPDATE取決於你需要對什麼操作類型進行紀錄 AS Insert Into 日志表(你的數據表字段名列表,OperateType) SELECT 你的數據表字段名列表,'Delete' FROM Deleted其中deleted是系統臨時表,用來紀錄你刪除的紀錄。同樣,還可以為添加和修改編寫觸發器,以下: 添加: CREATE TRIGGER [TRIGGER_INSERT_NAME] ON [dbo].[TABLE_NAME] FOR INSERT AS Insert Into 日志表(你的數據表字段名列表,OperateType) SELECT 你的數據表字段名列表,'Inserted' FROM Inserted修改有點不一樣,修改被系統認為是先刪除舊紀錄,再添加新紀錄,所以寫發如下: CREATE TRIGGER [TRIGGER_DELETE_NAME] ON [dbo].[TABLE_NAME] FOR UPDATE AS Insert Into 日志表(你的數據表字段名列表,OperateType) SELECT 你的數據表字段名列表,'Update-D' FROM Deleted Insert Into 日志表(你的數據表字段名列表,OperateType) SELECT 你的數據表字段名列表,'Update-I' FROM Inserted
CREATE TRIGGER [TRIGGER_INSERT_NAME] ON [dbo].[TABLE_NAME] FOR INSERT AS Insert Into 日志表(你的數據表字段名列表,OperateType) SELECT 你的數據表字段名列表,'Inserted' FROM Inserted修改有點不一樣,修改被系統認為是先刪除舊紀錄,再添加新紀錄,所以寫發如下: CREATE TRIGGER [TRIGGER_DELETE_NAME] ON [dbo].[TABLE_NAME] FOR UPDATE AS Insert Into 日志表(你的數據表字段名列表,OperateType) SELECT 你的數據表字段名列表,'Update-D' FROM Deleted Insert Into 日志表(你的數據表字段名列表,OperateType) SELECT 你的數據表字段名列表,'Update-I' FROM Inserted这些语句在什么地方执行呢?我要是想查看该怎么办呢,查询日志表吗?
These code will run automatic when u change ur data_table's data. yes,u can get the logs from the log_table.
create trigger ttt on table1 for delete as insert into log_table (user,fdate) select hostname, getdate() 这段代码在哪里用?能具体的举个例子吗?方便的话再解释一下,成功过后马上给分把这段代码拿到sql server 上执行即可.以后如果有人删除delete Table1中的数据,语句 insert into log_table (user,fdate) select hostname, getdate() 会自动执行.
你可以create一个trace在sql里面,能够得到执行这个操作的用户和工作站,通过ping或者rdns可以得到他的ip地址
create trigger ttt on table1
for delete
as
insert into log_table
(user,fdate)
select hostname, getdate()
具体自己调一下----
不过如果你公开了sa密码,别人同样可以破掉,建议更改连接,添加密码,不要使用sa
for delete
as
insert into log_table
(user,fdate)
select hostname, getdate()从哪里看出来你记录下来IP地址了呢?能不能具体的解释一下,我看不懂
for delete
as
insert into log_table
(user,fdate)
select hostname, getdate()
这段代码在哪里用?能具体的举个例子吗?方便的话再解释一下,成功过后马上给分
HostName(默認值設為:(host_name()) ,這個函數可以取得計算機名稱),
OperateType(紀錄操作的類型,添加?修改?刪除?),
並在日志表去掉所有的約束(比如主鍵什麼的)。然後做觸發器。我估計你不怎麼會用觸發器,所以以SQL數據庫為例說明:直接在Enterprise的數據庫的Tables列表裡面右鍵點數據表,選擇“所有工作”----“Manage Triggers”
然後就可以編輯觸發器代碼了。代碼如下
CREATE TRIGGER [TRIGGER_DELETE_NAME] ON [dbo].[TABLE_NAME]
FOR DELETE --或者是INSERT,UPDATE取決於你需要對什麼操作類型進行紀錄
AS
Insert Into 日志表(你的數據表字段名列表,OperateType)
SELECT 你的數據表字段名列表,'Delete'
FROM Deleted其中deleted是系統臨時表,用來紀錄你刪除的紀錄。同樣,還可以為添加和修改編寫觸發器,以下:
添加:
CREATE TRIGGER [TRIGGER_INSERT_NAME] ON [dbo].[TABLE_NAME]
FOR INSERT
AS
Insert Into 日志表(你的數據表字段名列表,OperateType)
SELECT 你的數據表字段名列表,'Inserted'
FROM Inserted修改有點不一樣,修改被系統認為是先刪除舊紀錄,再添加新紀錄,所以寫發如下:
CREATE TRIGGER [TRIGGER_DELETE_NAME] ON [dbo].[TABLE_NAME]
FOR UPDATE
AS
Insert Into 日志表(你的數據表字段名列表,OperateType)
SELECT 你的數據表字段名列表,'Update-D'
FROM Deleted
Insert Into 日志表(你的數據表字段名列表,OperateType)
SELECT 你的數據表字段名列表,'Update-I'
FROM Inserted
FOR INSERT
AS
Insert Into 日志表(你的數據表字段名列表,OperateType)
SELECT 你的數據表字段名列表,'Inserted'
FROM Inserted修改有點不一樣,修改被系統認為是先刪除舊紀錄,再添加新紀錄,所以寫發如下:
CREATE TRIGGER [TRIGGER_DELETE_NAME] ON [dbo].[TABLE_NAME]
FOR UPDATE
AS
Insert Into 日志表(你的數據表字段名列表,OperateType)
SELECT 你的數據表字段名列表,'Update-D'
FROM Deleted
Insert Into 日志表(你的數據表字段名列表,OperateType)
SELECT 你的數據表字段名列表,'Update-I'
FROM Inserted这些语句在什么地方执行呢?我要是想查看该怎么办呢,查询日志表吗?
yes,u can get the logs from the log_table.
for delete
as
insert into log_table
(user,fdate)
select hostname, getdate()
这段代码在哪里用?能具体的举个例子吗?方便的话再解释一下,成功过后马上给分把这段代码拿到sql server 上执行即可.以后如果有人删除delete Table1中的数据,语句
insert into log_table
(user,fdate)
select hostname, getdate()
会自动执行.