新聞中心
業(yè)務(wù)上比較特殊的場(chǎng)景,我們經(jīng)常需要追蹤數(shù)據(jù)表的變動(dòng)情況,這種追蹤稱為追蹤數(shù)據(jù)表的足跡。追蹤數(shù)據(jù)表的足跡的目的是記錄哪些字段在某個(gè)時(shí)間點(diǎn)被更改,入庫時(shí)間,更新時(shí)間,更新操作等。

10多年的天峻網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整天峻建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“天峻網(wǎng)站設(shè)計(jì)”,“天峻網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
sqlserver數(shù)據(jù)庫提供了很多方式來實(shí)現(xiàn)追蹤數(shù)據(jù)表的足跡,例如可以使用trigger和csv文件來實(shí)現(xiàn),下面分別介紹其工作原理:
(1) Trigger : Trigger就是數(shù)據(jù)庫的觸發(fā)器,它可以在指定的數(shù)據(jù)庫表上實(shí)現(xiàn)數(shù)據(jù)變更的追蹤。每當(dāng)發(fā)生insert,update或delete操作時(shí),這些變更數(shù)據(jù)會(huì)被記錄到數(shù)據(jù)表中,這樣就能夠?qū)崿F(xiàn)追蹤數(shù)據(jù)表的足跡:
“`SQL
CREATE TRIGGER tr_track_data_table
ON dbo.DataTable
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
–追蹤新增數(shù)據(jù)
IF EXISTS (select 1 from INSERTED)
BEGIN
INSERT INTO dbo.TrackingTable
(ChangedColumn, ChangedValue, ChangedTime, Operation)
SELECT ‘ColumnName’, INSERTED.ColumnName,
GETDATE(), ‘Insert’
FROM INSERTED
END
–追蹤更新數(shù)據(jù)
IF EXISTS (SELECT 1 FROM UPDATED)
BEGIN
INSERT INTO dbo.TrackingTable
(ChangedColumn, ChangedValue, ChangedTime, Operation)
SELECT ‘ColumnName’, UPDATED.ColumnName,
GETDATE(), ‘Update’
FROM UPDATED
END
–追蹤刪除數(shù)據(jù)
IF EXISTS (SELECT 1 FROM DELETED)
BEGIN
INSERT INTO dbo.TrackingTable
(ChangedColumn, ChangedValue, ChangedTime, Operation)
SELECT ‘ColumnName’, DELETED.ColumnName,
GETDATE(), ‘Delete’
FROM DELETED
END
END
(2) Csv文件:可以將現(xiàn)有數(shù)據(jù)表導(dǎo)出成csv文件,當(dāng)數(shù)據(jù)更新時(shí),再將這個(gè)表重新導(dǎo)出,然后利用代碼對(duì)比這兩份csv文件,來獲取數(shù)據(jù)更改了哪些字段,以及變動(dòng)之后數(shù)據(jù)如何變動(dòng),這樣便可以完成追蹤數(shù)據(jù)表的足跡:
static void WriteExportDataToCSV(DataTable dtImport)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i
{
sb.Append(dtImport.Columns[i].ColumnName + “,”);
}
sb.Append(“\n”);
foreach (DataRow dr in dtImport.Rows)
{
for (int i = 0; i
{
sb.Append(dr[i].ToString() + “,”);
}
sb.Append(“\n”);
}
using (StreamWriter sw = new StreamWriter(@ “D:\test.csv”, false, System.Text.Encoding.Default))
{
sw.Write(sb.ToString());
sw.Close();
}
}
總結(jié)來說,SqlServer數(shù)據(jù)庫提供了很多方式實(shí)現(xiàn)追蹤數(shù)據(jù)表的足跡,包括使用trigger和Csv文件,這些技術(shù)能夠很高效的實(shí)現(xiàn)數(shù)據(jù)表足跡的追蹤。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁題目:追蹤SqlServer數(shù)據(jù)表的足跡(追蹤sqlserver表)
分享地址:http://m.jiaoqi3.com/article/dpjjphp.html


咨詢
建站咨詢
