1. 新增範例資料庫
在這個單元中,我們將一步一步地帶領你完成一個非常基礎但極為重要的任務:成功建立一個名為 demodb 的範例資料庫。
1.1 新增 demodb 資料庫

這是建立資料庫的核心操作。在你的資料庫管理工具中新增資料庫時,請在對應欄位輸入以下兩項關鍵資訊:
- 資料庫名稱:
demodb - 資料庫路徑:
d:\db\sql2022
當你輸入完畢並執行新增後,系統會在指定的路徑下建立兩個非常重要的檔案(.mdf 資料庫主檔、.ldf 資料庫交易記錄檔)。
操作步驟



1.2 資料庫分類
市面上有許多的資料庫,以下用 交易 及 價格、維護性、資源 等來區分為 小型資料庫、中型資料庫、大型資料庫 等。

- 小型與中型間的區隔:
在於中間有一叫做交易的機制,中、大型資料庫必備。 - 中型與大型間的區隔:
使用 價格(越便宜是中型、越貴的是大型)、維護性(維護性越好的是大型、維護性越差的是中型)、**資源(網路上可以獲取的資源,)**來區分。
1.3 核心觀念:認識資料庫實體檔案
我們在管理工具中看到的邏輯資料庫(例如 demodb),其背後是由硬碟上具體的實體檔案所構成的。對於一個基本的資料庫來說,最核心的就是以下這兩個檔案:
| 檔案名稱 | 用途說明 |
|---|---|
demodb.mdf | 主資料庫檔案 (Primary Data File),這是存放所有資料(如資料表中的客戶資料)與資料庫物件(如索引、預存程序)的核心檔案。 |
demodb_log.ldf | 交易記錄檔案 (Transaction Log File),用來記錄所有資料的變動與交易過程,確保資料的完整性與可恢復性,例如在系統意外當機後,資料庫能藉此回復到出錯前的狀態。 |
資料庫剛建立之初,這兩個檔案大小一樣,就資料久了之後交易記錄檔就會變得很龐大,可用指令來清除。
1.4 總結說明
恭喜你!你已經成功完成了第一個資料庫的建立,並對資料庫的實體結構有了初步的認識。
讓我們快速回顧本次演練最重要的兩個學習成果:
- 成功建立了名為
demodb的資料庫。 - 理解了資料庫是由 主資料庫檔 (
.mdf) 與 交易記錄檔 (.ldf) 這兩種實體檔案所組成的。
2. 交易 (Transaction)
2.1 交易的過程

一筆交易是多個以上的過程,比如說有兩對象(鄉費者、攤販),消費者向攤販買了一把青菜,一定是付錢了,在拿到青菜,缺了其中一項(付錢或拿菜) 都不算完成交易。
重点提示
同時完成了付錢及交貨才算是完成了交易
只要有一方沒完成,都不算是交易完成,因此交易指的是交易過程的百分百完成度,全部過程皆完成才能算交易結束。。
2.2 資料庫上交易的範例
假設執行 ERP 進料驗收(IQC)確認的作業時會造造成
- 產生一張進貨單
- 產生一張入庫單
- 產生一筆固定資產(貴重商品)
使用無交易機制

當運作過程出現問題、例如電腦當機…等!,交易紀錄會出現許多錯誤。
使用交易機制

這種機制,資料庫會有兩個,多了一個交易紀錄檔,這時 IQC 驗收 不直接對資料庫,而改向交易紀錄檔,當所有流程跑完,執行 Commit 完成交易,通知 交易紀錄檔 在一次性把正確資料寫入資料庫內。失敗的交易紀錄也會寫在交易紀錄檔內。
2.3 交易程式執行流程
- 交易開始時可下達開始交易(
Begin Transaction)的指令,宣布交易開始。 - 交易過程 中也可以下達取消交易(
Rollback Transaction)的指令,直接取消整個交易。 - 交易结束 时可下達交易完成(
Commit Transaction)的指令,宣布交易結束。

2.4 T-SQL 預存程式交易範例
CREATE PROCEDURE sp_UpdateData
@subtotal INT
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION;
UPDATE SalesData
SET
Unitprice = 15.9
WHERE CustomerID = 10776
AND subtotal = @subtotal;
IF @@TRANCOUNT > 0 COMMIT;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
SELECT ERROR NUMBER() AS ErrorNumber;
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
END;3. 資料庫備份
3.1 資料庫備份建議
-
資料庫的大小增加時,完整資料庫備份就需要更多的時間才能完成,同時也需要更多的儲存空間。若為大型資料庫,請考慮透過一系列的差異資料庫備份來補充充完整資料庫備份。
-
使用
sp_spaceused系統預存程序來估計完整資料庫備份的大小。 -
根據預設,每個成功的備份作業都會在
SQL Server錯誤認檔和系統事件記錄信中新增專案。
如果您經常備份,成功訊息會快速累積,因而造成大量的錯誤記錄檔,讓尋找其他訊息變得因難,在這頭情況下,如果沒有任何指令碼相依於這些備份記錄項目,您就可以使用追蹤旗標 3226 來隱藏這些項目。如需詳細資訊,請參閱Transact-SQL。
3.2 資料庫備份分類
- 離線備份
Offline Backup
表示執行備份時,使用者不能使用資料庫,必須離線才能執行備份程序。 - 線上備份
Online Backup
表示執行備份時,使用者不能使用資料庫,不需要離線也能執行備份程序。
備份執行方式
離線備份 Offline Backup | 線上備份 Online Backup |
|---|---|
| 開啟/關閉服務 | 手動備份/還原資料庫 |
| 卸離/附加資料庫 | 執行備份計劃-自動備份資料庫工作 |
| 離線/線上資料庫 | 執行備份計劃-TSQL 工作 |