內容簡介
本書以套用廣泛的SQL Server 2012 資料庫為依據,用16 章的篇幅,以基礎介紹、資料庫及表的創建、數據查詢、數據操縱、數據控制、事務控制和資料庫管理等資料庫操作的一般順序,由淺入深地介紹Transact-SQL 語言。 本書面向SQL 與SQL Server 的初學者,著重講解Transact-SQL 的基本和常用的使用語法,同時,結合大量實例,給出了翔實的實例代碼,便於讀者實踐操作,迅速掌握。另外,對一些難以理解的概念和複雜的語法,輔以翔實的理論講解。因此,從某種意義上講,本書不僅僅是語法手冊,還是學習手冊。
圖書目錄
第1 章 資料庫系統與SQL 語言概述.................... 1
1.1 資料庫系統與數據模型................................. 1
1.1.1 基本術語........................................... 1
1.1.2 資料庫技術的發展............................ 2
1.1.3 數據模型........................................... 4
1.2 資料庫系統的體系結構................................. 5
1.2.1 資料庫系統的三級模式結構............ 5
1.2.2 資料庫管理系統(DBMS) ............ 6
1.2.3 資料庫系統的工作流程.................... 7
1.3 關係資料庫的簡單介紹................................. 8
1.3.1 關係資料庫的基本特性.................... 9
1.3.2 關係資料庫的設計規範.................... 9
1.4 SQL 語言概述.............................................. 10
1.4.1 SQL 語言的發展............................. 10
1.4.2 SQL 語言的功能............................. 11
1.4.3 SQL 語言的執行形式..................... 11
1.4.4 SQL 語句結構................................. 12
1.4.5 SQL 的環境..................................... 13
1.4.6 SQL DBMS 的客戶機/伺服器
模型................................................. 15
1.4.7 SQL 語言的擴展............................. 16
1.5 小結.............................................................. 16
第2 章 Transact-SQL 與SQL Server 2012 ......... 17
2.1 SQL Server 2012 及其簡單套用.................. 17
2.1.1 SQL Server 2012 的版本................. 17
2.1.2 SQL Server Management Studio........ 18
2.1.3 使用Management Studio 創建
資料庫............................................. 19
2.1.4 使用Management Studio 創建、
查看、編輯表................................. 21
2.1.5 使用Management Studio 編輯
運行T-SQL 語言............................ 23
2.2 Transact-SQL 語言....................................... 24
2.2.1 Transact-SQL 概述.......................... 24
2.2.2 Transact-SQL 的標識符.................. 25
2.2.3 對象命名規則................................. 25
2.2.4 Transact-SQL 的主要組成.............. 26
2.2.5 Transact-SQL 的其他一些常用
命令................................................. 28
2.3 Transact-SQL 在SQL Server 中的執行...... 34
2.3.1 解析Transact-SQL 語句................. 34
2.3.2 編譯Transact-SQL 語句................. 35
2.3.3 執行Transact-SQL 語句................. 35
2.4 小結.............................................................. 35
第3 章 資料庫與表的操作.................................... 36
3.1 創建、修改和刪除資料庫........................... 36
3.1.1 SQL Server 資料庫的組成.............. 36
3.1.2 創建資料庫——CREATE
DATABASE.................................... 38
3.1.3 修改資料庫——ALTER
DATABASE.................................... 41
3.1.4 查看資料庫信息——sp_helpdb、
sp_spaceused ................................... 43
3.1.5 刪除資料庫——DROP
DATABASE.................................... 46
3.2 SQL Server 中的表....................................... 46
3.2.1 表的結構及設計.............................. 46
3.2.2 Transact-SQL 對表的要求.............. 47
3.2.3 表的類型......................................... 47
3.3 SQL Server 2012 中的數據類型.................. 48
3.3.1 數字類型......................................... 48
3.3.2 時間和日期類型.............................. 50
3.3.3 字元數據類型.................................. 52
3.3.4 二進制數據類型.............................. 54
3.3.5 其他數據類型.................................. 54
3.3.6 用戶自定義數據類型...................... 55
3.3.7 數據類型同義詞.............................. 57
3.4 創建表(CREATE TABLE) ..................... 58
3.4.1 實例表設計...................................... 58
3.4.2 創建基本表——CREATE TABLE... 59
3.4.3 指定值非空——NOT NULL.......... 61
3.4.4 指定列的默認值——DEFAULT.... 62
3.5 編輯表結構(ALTER TABLE) ................ 63
3.5.1 添加列或約束——ADD................. 63
3.5.2 修改列的定義——ALTER
COLUMN........................................ 64
3.5.3 刪除列——DROP COLUMN......... 65
3.6 重命名、刪除表........................................... 67
3.6.1 修改表的名稱——sp_rename......... 67
SQL
VIII
3.6.2 刪除基本表——DROP TABLE ..... 68
3.7 小結.............................................................. 68
第4 章 基本的查詢............................................... 69
4.1 SELECT 語句的結構與執行....................... 69
4.1.1 SELECT 語句的語法結構.............. 69
4.1.2 SELECT 各子句的順序及功能...... 70
4.1.3 SELECT 語句各子句的執行.......... 70
4.2 最簡單的查詢.............................................. 71
4.2.1 向實例表中添加數據...................... 71
4.2.2 查詢表中列的數據——FROM
子句................................................. 72
4.2.3 去除結果的重複信息——
DISTINCT....................................... 73
4.2.4 查詢所有列——“*”...................... 75
4.2.5 進行無數據源檢索.......................... 76
4.2.6 返回查詢的部分數據——TOP ...... 76
4.3 帶有搜尋條件的查詢................................... 78
4.3.1 簡單的選擇查詢——WHERE........ 78
4.3.2 使用比較表達式............................. 79
4.3.3 使用基本的邏輯表達式——
NOT、AND、OR........................... 80
4.3.4 空值(NULL)的判斷——
IS [NOT] NULL.............................. 85
4.3.5 限定數據範圍——BETWEEN....... 86
4.3.6 限制檢索數據的範圍——IN.......... 88
4.3.7 模糊查詢——LIKE ........................ 89
4.4 排序查詢結果.............................................. 94
4.4.1 基本排序——ORDER BY.............. 94
4.4.2 對多列進行排序............................. 97
4.5 小結.............................................................. 98
第5 章 查詢中表達式與函式的使用.................... 99
5.1 SQL Server 中的運算符............................... 99
5.1.1 算術運算符..................................... 99
5.1.2 位運算符......................................... 99
5.1.3 比較運算符................................... 100
5.1.4 邏輯運算符................................... 100
5.1.5 字元串連線符............................... 101
5.1.6 賦值運算符................................... 101
5.1.7 運算符的優先權........................... 101
5.2 SELECT 子句中表達式的使用................. 101
5.2.1 使用連線符連線列—“+”............ 102
5.2.2 操作查詢的列名——“=”、“AS”..... 103
5.2.3 對重命名列的操作........................ 105
5.2.4 算術表達式的使用........................ 107
5.3 數學函式的使用........................................ 108
5.3.1 三角函式....................................... 108
5.3.2 計算函式....................................... 109
5.3.3 近似函式....................................... 109
5.4 字元處理函式的使用................................. 110
5.4.1 SQL Server 2012 中的字元
處理函式....................................... 110
5.4.2 字元的轉換處理函式.................... 111
5.4.3 字元串的提取函式........................ 114
5.4.4 其他字元串處理函式.................... 118
5.5 日期、時間處理函式的使用..................... 120
5.5.1 SQL Server 2012 中的日期
處理函式....................................... 120
5.5.2 獲取當前時間——GETDATE、
GETUTCDATE、CURRENT_
TIMESTAMP................................ 120
5.5.3 增加、減少時間——DATEADD.... 121
5.5.4 獲取時間間隔——DATEDIFF..... 122
5.5.5 獲取時間整數值——DAY、
MONTH、YEAR、DATEPART.... 123
5.5.6 獲取時間的字元串——
DATENAME................................. 124
5.5.7 常用的時間計算............................ 124
5.6 類型轉換函式的使用................................. 126
5.6.1 類型轉換——CAST ..................... 126
5.6.2 類型轉換—CONVERT............. 128
5.7 小結............................................................ 129
第6 章 系統函式、聚合函式與分組查詢.......... 130
6.1 系統函式的使用......................................... 130
6.1.1 信息查詢相關的系統函式............ 130
6.1.2 判斷、分類系統函式.................... 131
6.1.3 統計系統函式................................ 134
6.2 聚合函式的使用......................................... 136
6.2.1 聚合函式的種類............................ 136
6.2.2 計數函式——COUNT.................. 137
6.2.3 求和函式——SUM....................... 138
6.2.4 均值函式——AVG....................... 139
6.2.5 最大值/最小值函式——
MAX/MIN..................................... 140
6.2.6 統計函式——STDEV、
STDEVP、VAR、VARP............. 141
6.2.7 聚合函式的重值處理——
ALL、DISTINCT ......................... 141
6.2.8 聚合函式的執行機理.................... 142
6.3 分組查詢.................................................... 143
6.3.1 簡單分組——GROUP BY............ 143
6.3.2 多列分組....................................... 144
6.3.3 分組查詢中NULL 值的處理....... 145
6.3.4 匯總數據運算符——
CUBE、ROLLUP......................... 146
目錄
IX
6.3.5 區分不同的NULL 值——
GROUPING .................................. 147
6.3.6 篩選分組結果——HAVING........ 148
6.3.7 多級分類匯總——COMPUTE..... 150
6.3.8 對分組聚合結果進行聚合分析.... 152
6.4 小結............................................................ 154
第7 章 數據連線與多表查詢.............................. 155
7.1 多表連線的基本概念與實現..................... 155
7.1.1 連線的概念................................... 155
7.1.2 連線的類型與實現........................ 156
7.1.3 創建實例表ReaderInfo................. 156
7.2 簡單多表查詢的實現................................. 158
7.2.1 使用FROM 子句實現多表查詢.... 158
7.2.2 使用WHERE 子句指定連線條件... 159
7.2.3 使用別名作為表名的簡寫............ 160
7.2.4 自連線表進行查詢........................ 161
7.3 使用JOIN 關鍵字實現表的連線.............. 163
7.3.1 基本連線語法............................... 163
7.3.2 內部連線——INNER JOIN.......... 163
7.3.3 外部連線——OUTER JOIN ......... 165
7.3.4 交叉連線——CROSS JOIN ......... 170
7.3.5 連線與空值................................... 171
7.3.6 表的連線與聚合分析.................... 173
7.4 集合運算.................................................... 174
7.4.1 關係的集合運算............................ 174
7.4.2 集合併運算——UNION............... 175
7.4.3 多表的UNION 操作..................... 177
7.4.4 UNION 與JOIN 的區別............... 178
7.4.5 集合差/集合交運算——EXCEPT/
INTERSECT.................................. 179
7.4.6 集合運算在Transact-SQL 語句
的使用原則................................... 182
7.5 小結............................................................ 183
第8 章 資料庫數據操作...................................... 184
8.1 向表中添加數據——INSERT ................... 184
8.1.1 INSERT 命令的基本語法............. 184
8.1.2 整行插入數據............................... 185
8.1.3 INSERT 操作中NULL 值的處理.... 186
8.1.4 INSERT 操作中默認值的處理..... 187
8.1.5 INSERT 操作中唯一值的處理..... 188
8.1.6 使用INSERT…SELECT 插入
數據............................................... 189
8.2 修改和更新表中的數據——UPDATE ..... 191
8.2.1 UPDATE 命令的基本語法........... 192
8.2.2 使用UPDATE 更新數據行.......... 192
8.2.3 使用FROM 和WHERE 子句根
據多表連線更新數據................... 193
8.2.4 大值數據類型欄位值的更新........ 195
8.2.5 使用OPENROWSET 和BULK
來操作大型數據對象................... 197
8.3 刪除表中的數據——DELETE.................. 199
8.3.1 DELETE 命令的基本語法............ 199
8.3.2 使用DELETE 刪除行................... 200
8.3.3 使用TRUNCATE TABLE 刪除
表中的所有數據........................... 201
8.4 BLOB(TEXT、NTEXT 和IMAGE)
數據處理.................................................... 202
8.4.1 寫入BLOB 數據——
WRITETEXT ................................ 202
8.4.2 更新BLOB 數據——
UPDATETEXT ............................. 204
8.4.3 TEXTSIZE 選項和@@TEXTSIZE
函式............................................... 205
8.5 OUTPUT 子句............................................ 206
8.5.1 基本語法....................................... 206
8.5.2 OUTPUT 子句的使用................... 207
8.6 表中數據的複製和導入導出操作............. 211
8.6.1 複製表中數據——SELECT…
INTO ............................................. 211
8.6.2 導入導出數據——BCP 工具....... 212
8.7 小結............................................................ 214
第9 章 子查詢及FOR XML 子句的使用.......... 215
9.1 子查詢基礎................................................ 215
9.1.1 相關子查詢與非相關子查詢........ 215
9.1.2 子查詢的組成................................ 217
9.1.3 子查詢的使用方式及限制............ 217
9.2 比較運算符引入返回單值的子查詢......... 218
9.2.1 比較運算符引入子查詢................ 218
9.2.2 在子查詢中使用聚合函式返回
單值............................................... 220
9.3 IN 或修改的比較運算符引入返回多值
的子查詢.................................................... 222
9.3.1 使用[NOT]IN 引入子查詢............ 222
9.3.2 使用修改的比較運算符引入返
回多值的子查詢........................... 225
9.4 EXISTS 引入的存在測試子查詢.............. 229
9.4.1 使用EXISTS 的子查詢................ 229
9.4.2 EXISTS 子查詢的使用................. 230
9.4.3 使用EXISTS 子查詢檢查表中的
重複行........................................... 231
9.5 子查詢的其他套用..................................... 232
9.5.1 在子查詢中使用TOP 關鍵字...... 232
9.5.2 在SELECT 子句中使用子查詢... 233
9.5.3 在HAVING 子句中使用子查詢.. 234
SQL
X
9.5.4 在數據操作語句(DML)中使用
子查詢........................................... 236
9.6 FOR XML 子句.......................................... 237
9.6.1 FOR XML 子句的基本語法......... 238
9.6.2 FOR XML RAW 模式及使用....... 238
9.6.3 FOR XML AUTO 模式及使用..... 240
9.6.4 FOR XML EXPLICIT 模式及
使用............................................... 241
9.6.5 FOR XML PATH 模式及使用...... 243
9.6.6 使用TYPE 指令返回XML 數據
類型............................................... 246
9.6.7 在數據操作語句(DML)中使用
FOR XML 子句............................ 246
9.7 小結............................................................ 247
第10 章 表的約束、索引與視圖....................... 248
10.1 表鍵及其使用.......................................... 248
10.1.1 表約束的種類............................. 248
10.1.2 約束的創建................................. 248
10.1.3 主鍵約束——PRIMARY KEY ..... 249
10.1.4 外鍵約束——FOREIGN KEY.... 251
10.1.5 外鍵與級聯引用完整性約束...... 255
10.1.6 標識符列——IDENTITY 屬性..... 258
10.1.7 查看、更改標識值——DBCC
CHECKIDENT............................ 260
10.2 表的約束.................................................. 261
10.2.1 唯一性約束——UNIQUE .......... 261
10.2.2 校驗約束——CHECK................ 262
10.2.3 約束的刪除、修改和禁用.......... 264
10.3 索引.......................................................... 266
10.3.1 索引的基礎知識.......................... 267
10.3.2 創建索引——CREATE INDEX.... 268
10.3.3 非聚集索引的創建和使用——
NONCLUSTERED ..................... 269
10.3.4 聚集索引的創建和使用——
CLUSTERED.............................. 272
10.3.5 聚集索引和非聚集索引的使用..... 274
10.3.6 查看、修改和刪除索引.............. 274
10.3.7 索引的使用準則.......................... 277
10.4 視圖.......................................................... 278
10.4.1 視圖的基礎知識.......................... 278
10.4.2 創建視圖——CREATE VIEW..... 279
10.4.3 查詢視圖的定義和相關信息...... 281
10.4.4 修改、更新和刪除視圖.............. 283
10.4.5 通過視圖修改表中記錄.............. 284
10.4.6 索引視圖及其使用...................... 288
10.5 小結.......................................................... 290
第11 章 存儲過程與用戶自定義函式................ 291
11.1 理解存儲過程........................................... 291
11.1.1 存儲過程的基本概念.................. 291
11.1.2 存儲過程的優點.......................... 291
11.1.3 存儲過程的種類.......................... 292
11.2 程式流控制語句....................................... 292
11.2.1 SQL Server 中的程式流控制
語句............................................. 292
11.2.2 IF…ELSE 條件選擇結構............ 293
11.2.3 BEGIN…END 語句塊................ 294
11.2.4 CASE 結構.................................. 294
11.2.5 WHILE 循環結構........................ 296
11.2.6 WAITFOR 等待語句.................. 297
11.3 存儲過程的創建和使用........................... 298
11.3.1 系統存儲過程.............................. 298
11.3.2 創建存儲過程——CREATE
PROCEDURE ............................. 298
11.3.3 創建存儲過程的實例.................. 299
11.3.4 執行存儲過程——EXECUTE.... 302
11.3.5 查看、修改和刪除存儲過程...... 304
11.4 用戶自定義函式的創建和使用............... 306
11.4.1 創建標量型自定義函式.............. 307
11.4.2 創建內聯表值自定義函式.......... 308
11.4.3 創建多語句表值自定義函式...... 309
11.4.4 調用用戶自定義函式.................. 311
11.4.5 修改、查詢和刪除自定義函式.... 312
11.5 小結.......................................................... 313
第12 章 觸發器與錯誤處理............................... 314
12.1 觸發器的基本概念................................... 314
12.1.1 觸發器簡介................................. 314
12.1.2 觸發器的類型.............................. 314
12.1.3 觸發器的作用及使用.................. 315
12.1.4 觸發器的執行環境...................... 316
12.2 創建和使用DML 觸發器........................ 317
12.2.1 AFTER DML 觸發器的創建
語法............................................. 317
12.2.2 AFTER DML 觸發器的創建
實例............................................. 318
12.2.3 測試對指定列的UPDATE 操作.. 321
12.2.4 INSTEAD OF DML 觸發器的
創建和使用................................. 323
12.2.5 嵌套觸發器................................. 327
12.2.6 遞歸觸發器................................. 330
12.2.7 查詢DML 觸發器的相關信息.... 333
12.3 創建和使用DDL 觸發器......................... 334
12.3.1 DDL 觸發器的創建語法............. 334
12.3.2 DDL 觸發器的創建實例............. 335
目錄
XI
12.3.3 查詢DDL 觸發器的相關信息.... 337
12.4 觸發器的管理.......................................... 339
12.4.1 使用系統存儲過程查詢觸發器
的相關信息................................. 339
12.4.2 修改觸發器——ALTER
TRIGGER.................................... 340
12.4.3 禁用/啟用觸發器——
DISABLE/ENABLE TRIGGER ... 341
12.4.4 設定觸發器的激發順序——
sp_settriggerorder ........................ 341
12.4.5 刪除觸發器——DROP
TRIGGER.................................... 343
12.5 錯誤的獲取與處理................................... 344
12.5.1 查詢錯誤訊息——sys.messages .... 344
12.5.2 使用用戶自定義錯誤訊息——
sp_addmessage/sp_dropmessage.... 345
12.5.3 激發錯誤訊息——RAISERROR.... 346
12.5.4 獲取錯誤訊息——TRY…
CATCH/@@ERROR.................. 347
12.6 小結.......................................................... 349
第13 章 安全性管理——主體、許可權、安全
對象....................................................... 350
13.1 SQL Server 2012 安全模式...................... 350
13.1.1 主體(Principals)...................... 350
13.1.2 安全對象(Securables) ............ 354
13.1.3 許可權(Permissions) .................. 355
13.2 創建與管理Windows 級別的主體.......... 357
13.2.1 創建Windows 認證登錄用戶
(組)——CREATE LOGIN ...... 357
13.2.2 查看Windows 認證登錄用戶..... 358
13.2.3 修改Windows 認證登錄用戶——
ALTER LOGIN........................... 359
13.2.4 刪除Windows 認證登錄用
戶——DROP LOGIN ................. 359
13.3 創建與管理SQL Server 級別的主體...... 360
13.3.1 創建SQL Server 認證登錄用
戶——CREATE LOGIN ............ 360
13.3.2 修改SQL Server 認證登錄用
戶——ALTER LOGIN............... 361
13.3.3 查詢伺服器角色信息.................. 363
13.3.4 管理伺服器角色信息.................. 363
13.4 創建與管理資料庫級別的主體............... 365
13.4.1 創建資料庫用戶——CREATE
USER........................................... 365
13.4.2 修改、刪除資料庫用戶——
ALTER/DROP USER ................. 367
13.4.3 管理資料庫用戶.......................... 367
13.4.4 管理固定資料庫角色.................. 370
13.4.5 管理用戶自定義資料庫角色...... 371
13.4.6 管理應用程式角色...................... 373
13.5 安全對象與許可權....................................... 375
13.5.1 SQL Server 的內置許可權.............. 375
13.5.2 伺服器範圍的安全對象及其
許可權管理..................................... 376
13.5.3 資料庫範圍的安全對象及其
許可權管理..................................... 379
13.5.4 架構範圍的安全對象及其權
限管理......................................... 380
13.5.5 對象類安全對象及其許可權管理.... 385
13.6 主體、安全對象和許可權的管理............... 388
13.6.1 評估當前用戶對安全對象的有效
許可權——Has_perms_by_name ..... 388
13.6.2 查詢當前用戶對安全對象的有效
許可權——fn_my_permissions...... 389
13.6.3 創建憑據——CREATE
CREDENTIAL ............................ 390
13.7 小結.......................................................... 391
第14 章 事務控制和並發處理............................ 392
14.1 事務控制的基本概念............................... 392
14.1.1 事務控制的必要性...................... 392
14.1.2 事務的ACID 特性及實現.......... 393
14.1.3 事務的狀態.................................. 393
14.1.4 Transact-SQL 中事務的執行...... 394
14.2 SQL Server 中事務的實現....................... 395
14.2.1 啟動事務——BEGIN
TRANSACTION......................... 395
14.2.2 提交事務——COMMIT
TRANSACTION......................... 397
14.2.3 回滾事務——ROLLBACK
TRANSACTION......................... 399
14.2.4 設定事務的保存點——SAVE
TRANSACTION......................... 401
14.3 並發控制及其實現................................... 402
14.3.1 並發訪問的問題.......................... 403
14.3.2 SQL Server 中的鎖...................... 405
14.3.3 鎖的使用..................................... 406
14.3.4 顯示資料庫中活躍的事務和鎖
信息——DBCC OPENTRAN .... 409
14.3.5 事務隔離級別.............................. 410
14.3.6 設定事務隔離級別——
SET TRANSATION.................... 411
14.3.7 不同事務隔離級別實現並發控
制實例......................................... 412
14.3.8 事務阻塞及其解決方法.............. 420
SQL
XII
14.3.9 死鎖及預防................................. 423
14.4 小結.......................................................... 426
第15 章 游標與全文檢索................................... 427
15.1 游標的基本概念...................................... 427
15.1.1 游標的概念................................. 427
15.1.2 游標的實現及套用過程.............. 428
15.2 基本游標的創建和使用........................... 429
15.2.1 創建游標——DECLARE
CURSOR..................................... 429
15.2.2 打開游標——OPEN CURSOR .... 430
15.2.3 檢索游標數據——
FETCH CURSOR ....................... 430
15.2.4 關閉/刪除游標——CLOSE/
DEALLOCATE........................... 431
15.2.5 遍歷游標結果集——@@
FETCH_STATUS ....................... 433
15.2.6 使用游標修改、刪除數據.......... 434
15.3 Transact-SQL 擴展游標與游標的管理..... 436
15.3.1 Transact-SQL 擴展游標語法...... 436
15.3.2 使用游標變數............................. 438
15.3.3 事務中游標的使用...................... 440
15.3.4 游標的管理................................. 441
15.4 全文檢索基礎.......................................... 442
15.4.1 全文索引和全文目錄.................. 442
15.4.2 創建全文目錄——CREATE
FULLTEXT CATALOG............. 442
15.4.3 創建全文索引——CREATE
FULLTEXT INDEX.................... 443
15.5 使用全文謂詞和全文函式進行全文檢索..... 445
15.5.1 使用CONTAINS 謂詞進行全
文檢索......................................... 445
15.5.2 使用FREETEXT 謂詞進行全
文檢索......................................... 448
15.5.3 使用全文函式——CONTAINSTABLE
和FREETEXTTABLE ............... 448
15.6 小結.......................................................... 450
第16 章 伺服器與資料庫的配置與管理............ 451
16.1 管理伺服器配置選項............................... 451
16.1.1 查詢伺服器配置選項.................. 451
16.1.2 更改伺服器配置選項.................. 453
16.2 管理資料庫配置選項............................... 454
16.2.1 查詢資料庫信息.......................... 455
16.2.2 自動選項及其設定...................... 456
16.2.3 ANSI SQL 選項及其設定........... 457
16.2.4 外部數據源對資料庫的訪問
選項............................................. 459
16.2.5 游標選項及其設定...................... 459
16.2.6 資料庫恢複選項和磁碟I/O 錯
誤檢查......................................... 460
16.2.7 控制資料庫的狀態和屬性.......... 462
16.2.8 資料庫磁碟空間管理.................. 464
16.3 資料庫的維護........................................... 467
16.3.1 檢查磁碟空間分配結構的一致
性——DBCC CHECKALLOC.... 467
16.3.2 檢查資料庫對象的結構和邏輯
完整性——DBCC CHECKDB ... 469
16.3.3 檢查檔案組分配和結構完整性——
DBCC CHECKFILEGROUP...... 470
16.3.4 檢查頁和結構的完整性——
DBCC CHECKTABLE............... 471
16.3.5 檢查約束的完整性——
DBCC CHECKCONSTRAINTS ... 472
16.4 資料庫的備份與恢復............................... 474
16.4.1 資料庫備份與恢復的基本概念.... 474
16.4.2 備份操作相關的Transact-SQL
語句............................................. 476
16.4.3 完整備份——BACKUP
DATABASE................................ 477
16.4.4 創建邏輯備份設備——s
p_addumpdevice.......................... 480
16.4.5 事務日誌備份——BACKUP
LOG............................................. 481
16.4.6 差異備份——DIFFERENTIAL.... 483
16.4.7 檔案備份..................................... 484
16.4.8 部分備份——READ_ WRITE_
FILEGROUPS............................. 486
16.4.9 查詢備份集的元數據.................. 487
16.4.10 資料庫還原——RESTORE
DATABASE................................ 489
16.5 信息架構視圖........................................... 494
16.5.1 信息架構視圖簡介...................... 494
16.5.2 TABLES 信息架構視圖.............. 495
16.5.3 VIEWS 信息架構視圖................ 496
16.5.4 COLUMNS 信息架構視圖......... 497
16.5.5 ROUTINES 信息架構視圖......... 499
16.6 小結.......................................................... 500