復原模式(Recovery Model) :
發生檢查點(check point)之後,是否繼續存留交易紀錄在資料庫的交易紀錄檔之中。

完整備份(Full Backup) : Data + Uncommitted Log
將整個資落庫的資料與部分交易。在作業的過程中任何的作業完成與未完成的交易都會進行備份。

差異備份(Differential Backup) :
1.從最近一次的完整備份,到現在的資料量變化的備份作業。
2.僅能將資料庫還原至差異備份的時間點。
3.最近一次的差異備份可以取代前一次的差異備份。

交易紀錄備份(Log Backup) : Backup Log + Clear Log
1.進行交易備份之後,系統會自動截斷不在使用的交易紀錄檔,並釋放空間。
2.每一份交易備份的備份資料,是屬於接續性的關係。
3.可以將系統狀態還原至特定的時間點。

結尾交易備份(Tail-log Backup) :
當系統要進行還原時,第一個首要工作就是,將剩餘的交易紀錄檔進行備份。

SQL Server 2000 的 SQL Mail 提供從 Microsoft SQL Server 傳送和讀取電子郵件的簡易方式,但是 SQL Mail 屬於 MAPI 應用程式,所以伺服器上必須出現 MAPI 子系統。如果要使用 SQL Mail,就必須安裝 MAPI 用戶端,例如 :Microsoft Outlook 或是 Exchange Server。本文件所提及之技術,伺服器可以不必安裝MAPI 子系統,即可發送電子郵件。

我們可以利用 SQL Server OLE Automation 系統預存程序,來呼叫 CDOSYS 物件模型,並搭配任何支援 SMTP 郵件的郵件伺服器,作為自己的遠端 SMTP 郵件伺服器,來達到寄送電子郵件的功能。

本機交易通常使用在主、從式應用程式中,更新的對象限定於同一個資料來源。應用程式可以使用在ADO.NET當中的Connection物件搭配Transaction物件來完成,而Command物件有一個Transaction屬性,允許把想要執行的多個命令,包裝成一個單獨的交易。讓整個交易中所有的工作,都有一致的結果,不是完全成功執行就是完全失敗。

以往在同一個Connection當中,分別以多個DataReader搭配Command物件,或者是透過DataAdapter讀取資料時,一次只有一個命令可以執行查詢,查詢的動作也會循序地執行。我們無法一邊讀取資料,一邊利用相同的Connection,來進行其他資料的查詢、新增、修改、刪除等等動作。
現在我們可以利用SQL Server 2005所提供的功能MARS (Multiple Active Result Sets),它允許在單一資料庫連線上執行多的批次作業,並同時操作多個查詢結果集,或同時進行資料的新增、修改、刪除作業。例如,當應用程式開啟一個DataReader而且尚未關閉的情況下,我們可以利用相同的連線,送出另一個查詢命令到資料來源。
預設MARS功能是停用的,必須在連線字串中,增加一組鍵值方可啟用。

Oracle資料庫的DML觸發程式是由DML敘述所激發,而敘述的類型決定了DML觸發程式的類型。它可以針對INSERT、UPDATE、DELETE操作定義,也可以在所有的資料列或特定的資料列起作用。敘述層次的觸發程式使用WHEN子句,來評定是否有發生特定類型的改變。在觸發程式內,你可以使用 :old 或 :new的繫結變數,來存取目前被處理的資料。PL/SQL編譯器會把它當成由類型組成的紀錄: triggering_table%ROWTYPE ,定義此觸發程式的表格。使用方式為 :old.field 或 :new.field。它也提供三個布林函數可以判定操作類型,分別為INSERTING、UPDATING、DELETING,當敘述符合時,它就是TRUE;否則就是FALSE。

假設現在我們有4個需求分別是:
1. 新增訂單之後,將庫存量減去訂單的訂購產品數量。
2. 修改產品單價的時後,不得超過原始價值的10%。
3. 如果訂單被刪除了,系統可以寄Mail通知管理人員。
4. 新增訂單時,訂單流水號能夠依照日期所產生,例如:200803270123。
我們要如何建立觸發程序,並達到我們的需求 ?

觸發程序簡易說明:
Trigger Definition:
1. 觸發程序是依附資料表或檢視存在,本身是整個交易的延伸。
2. 從應用程式進行資料處理異動作業開始到觸發程序執行完畢,都屬於同一個交易的範圍。
DML Trigger:
(1) After Trigger:在執行Insert、Update、Delete陳述式的動作之後執行。
(2) Instead of Trigger:取代原先的Insert、Update、Delete的動作。

我們先建立兩個測試用的資料表,並依照需求順序建立對應的觸發程序。

一隻兔子在山洞前寫文章,一隻狼走了過來,問:"兔子啊,你在幹什麼?"
兔子答曰:"寫文章。
"狼問:" 什麼題目?
"兔子答曰:"《淺談兔子是怎樣吃掉狼的》。"
狼哈哈大笑,表示不信,於是兔子把狼領進山洞。
過了一會,兔子獨自走出山洞,繼續寫文章。

一隻野豬走了過來,問:"兔子你在寫什麼?
"兔子答:"文章。"
野豬問:"題目是什麼?
"兔子答:"《淺談兔子是如何把野豬吃掉的》。
"野豬不信,於是同樣的事情發生。

最後,在山洞裡,
一隻獅子在一堆白骨之間,滿意的剔著牙讀著兔子交給它的文章:
題目是:《一隻動物,能力大小關鍵要看你的老闆是誰》


這隻兔子有次不小心告訴了他的一個兔子朋友,這消息逐漸在森林中傳播;
獅子知道後非常生氣,他告訴兔子:"如果這個星期沒有食物進洞,我就吃你。"

於是兔子繼續在洞口寫文章。
一隻小鹿走過來,"兔子,你在幹什麼啊?"
兔子答:"寫文章"
"小鹿問:什麼題目?"
"兔子答曰:"《淺談兔子是怎樣吃掉狼的》。"
"哈哈,這個事情全森林都知道啊,你別胡弄我了,我是不會進洞的"
"我馬上要退休了,獅子說要找個人頂替我,
難道你不想這篇文章的兔子變成小鹿麼?"
小鹿想了想,終於忍不住誘惑,跟隨兔子走進洞裡。
過了一會,兔子獨自走出山洞,繼續寫文章。

一隻小馬走過來,同樣是事情發生了。
最後,在山洞裡,
一隻獅子在一堆白骨之間,滿意的剔著牙讀著兔子交給它的文章:
題目是:《如何發展下線動物為老闆提供食物》


隨著時間的推移,獅子越長越大,兔子的食物已遠遠不能填飽肚子。
一日,他告訴兔子:
"我的食物量要加倍,例如:原來4天一隻小鹿,現在要2天一隻,
如果一周之內改變不了局面, 我就吃你。"

於是,兔子離開洞口,跑進森林深處,他見到一隻狼。
"你相信兔子能輕鬆吃掉狼嗎"
狼哈哈大笑,表示不信,於是兔子把狼領進山洞。
過了一會,兔子獨自走出山洞,繼續進入森林深處
這回他碰到一隻野豬----"你相信兔子能輕鬆吃掉野豬嗎"
野豬不信,於是同樣的事情發生了。

原來森林深處的動物並不知道兔子和獅子的故事。
最後,在山洞裡,
一隻獅子在一堆白骨之間,滿意的剔著牙讀著兔子交給它的文章
題目是:《如何實現由坐商到行商的轉型為老闆提供更多的食物》


時間飛快,轉眼之間,兔子在森林裡的名氣越來越大。
因為大家都知道它有一個很厲害的老闆。
這只小兔開始橫行霸道,欺上欺下,沒有動物敢惹牠 ,
兔子時時想起和烏龜賽跑的羞辱。
牠找到烏龜說:" 三天之內,見我老闆!"揚長而去。
烏龜難過的哭了,
這時卻碰到了一位獵人,烏龜把這事告訴了他。
獵人哈哈大笑,
於是森林裡發生了一件重大事情,
獵人披著獅子皮和烏龜一起在吃兔子火鍋。

地下丟了半張紙片歪歪扭扭的寫著:
《山外青山樓外樓,強中還有強中手啊》!!


在很長一段時間裡森林裡恢復了往日的寧靜,
兔子吃狼的故事似乎快要被大家忘記了,
不過一隻年輕的老虎在聽說了這個故事後,被激發了靈感。
於是他抓住了一隻羚羊,對羚羊說,
如果你可以像以前的兔子那樣為我帶來食物那我就不吃你。
於是,羚羊無奈的答應了老虎,而老虎也悠然自得的進了山洞。
可是三天過去了,也沒有見羚羊領一隻動物進洞。
他實在憋不住了,想出來看看情況。

羚羊早已不在了,他異常憤怒。
正在他暴跳如雷的時候突然發現了羚羊寫的一篇文章
題目是:《想要做好老闆先要懂得怎樣留住員工》

較新的文章 較舊的文章 首頁