第1章 引言 1
1.1 .NET Framework和Microsoft平颱 1
1.2 .NET Framework對SQL Server的影響 2
1.3 SQL :1999標準:擴展關係模型 5
1.4 用戶定義的類型與SQL Server 7
1.5 XML:數據和文檔存儲 9
1.6 Web服務:XML作為一種封送格式 14
1.7 客戶訪問以及客戶 15
1.7.1 客戶端數據庫API和SQLServer 2005 15
1.7.2 客戶端基於XML 的API與SQL Server 2005的集成 15
1.8 擴展SQL Server到平颱:Service Broker和Notification Service 16
小結 17
第2章 宿主運行時: SQL Server作為一個運行時宿主 18
2.1 為什麼要關心宿主的工作原理 18
2.2 什麼是.NET Framework運行時宿主 19
2.3 SQL Server作為一個運行時宿主 20
2.3.1 SQL Server的資源管理 21
2.3.2 異常情況處理 22
2.3.3 加載代碼 24
2.3.4 安全性 25
2.4 加載運行時:進程和AppDomain 26
2.5 安全代碼:運行時如何安全運行“外部”代碼 28
2.6 代碼存在何處:存儲.NET Framework程序集(CREATE ASSEMBLY) 29
2.7 程序集依賴:當自己的程序集使用其他程序集時 33
2.8 程序集和SQL架構:誰擁有程序集(信息架構) 33
2.8.1 係統元數據錶和INFORMATION_SCHEMA 33
2.8.2 程序集元數據 34
2.9 維護用戶程序集(ALTER ASSEMBLY,DROP ASSEMBLY) 36
2.10 遵循規範 38
2.11 結論 39
小結 39
第3章 .NET CLR語言中的過程和函數 40
3.1 擴展SQL Server 40
3.2 CLR擴展基礎 41
3.3 CLR擴展詳解 49
3.4 System.Data.SqlTypes 50
3.4.1 關於空值的一些說明 51
3.4.2 使用SqlTypes 52
3.5 參數和返迴值 62
3.6 用戶定義的函數 62
3.7 錶值函數 66
3.8 存儲過程 71
3.9 觸發器 72
小結 73
第4章 進程內數據訪問 74
4.1 用SqlClient編程 74
4.2 上下文:SqlContext類 76
4.3 連接 79
4.4 命令:使事情發生 80
4.5 獲得結果 83
4.6 事務 85
4.6.1 TransactionScope的另類用法 88
4.6.2 最佳實踐 89
4.7 管道 90
4.8 創建並發送新的行集 92
4.9 使用WindowsIdentity 93
4.10 從SQLCLR調用一個Web服務 94
4.11 異常處理 97
4.12 SqlTriggerContext 101
4.13 不能在服務器端使用的SqlClient類 102
小結 102
第5章 用戶定義的類型和聚閤函數 103
5.1 為什麼需要用戶定義的類型 103
5.2 用戶定義的類型概覽 104
5.3 創建用戶定義的類型 105
5.3.1 空值的實現 107
5.3.2 字符串的實現 108
5.3.3 二進製的實現 111
5.3.4 IBinarySerialize.Read/Write 113
5.3.5 創建用戶定義類型 114
5.3.6 公共性質、字段和方法 116
5.3.7 幫助函數 122
5.3.8 驗證用戶定義類型 124
5.3.9 維護用戶定義類型的定義 125
5.3.10 用戶定義類型和XML 126
5.3.11 對象是否應該用用戶定義類型來錶示 131
5.3.12 用戶定義的聚閤函數 143
5.3.13 實現用戶定義的聚閤 145
5.3.14 創建用戶定義的聚閤函數 148
5.3.15 Format.Native與Format.UserDefined 148
小結 150
第6章 安全性 152
6.1 SQL Server 2005 中新的安全性特徵 152
6.2 默認設置為關閉的可選特徵 153
6.2.1 配置安全性設置 153
6.2.2 安全性和元數據 155
6.3 增強的SQL Server安全性概念簡單迴顧 155
6.3.1 認證和授權:用戶和權限 155
6.3.2 執行上下文和擁有權鏈 160
6.4 SQL Server 密碼策略和證書 163
6.5 加密密鑰和內置加密函數 165
6.6 加密函數 167
6.7 用戶和架構的分離 172
6.8 同義詞 175
6.9 指定過程代碼的執行上下文 176
6.10 代碼簽名 179
6.11 SQL Server權限和SQLCLR對象 181
6.12 程序集權限:誰可以編目和使用程序集 182
6.13 在SQL Server安全級彆內,.NETFramework代碼可以做什麼? 186
6.13.1 代碼訪問安全性入門 186
6.13.2 代碼訪問安全性和.NET Framework程序集 187
小結 190
第7章 SQL引擎增強 191
7.1 SQL引擎的改進 191
7.2 SNAPSHOT隔離 191
7.2.1 版本控製的缺點 197
7.2.2 版本控製監視 198
7.3 數據定義語言觸發器 199
7.4 事件通知 203
7.5 大值數據類型 205
7.6 用新的BULK提供者加載數據 208
7.7 語句級重編譯 208
7.8 查詢提示、計劃指南和計劃強製 209
小結 213
第8章 T-SQL語言的增強 215
8.1 Transact-SQL的改進 215
8.2 錯誤處理 215
8.3 INTERSECT和EXCEPT 225
8.4 TOP 228
8.5 ON DELETE和ON UPDATE 230
8.6 OUTPUT 232
8.7 APPLY操作符 235
8.8 通用錶錶達式 237
8.9 遞歸查詢 243
8.10 PIVOT和UNPIVOT操作符 249
8.10.1 PIVOT 249
8.10.2 UNPIVOT 253
8.11 分級和分區 254
8.11.1 ROW_NUMBER 255
8.11.2 RANK 256
8.11.3 DENSE_RANK 257
8.11.4 NTILE 257
8.11.5 PARTITION BY 258
8.11.6 聚閤分區 259
8.12 TABLESAMPLE 261
小結 264
第9章 數據庫中的XML:XML數據類型 265
9.1 XML數據類型 265
9.2 在錶中使用XML數據類型 266
9.3 使用XML數據變量和參數 270
9.4 有類型和無類型的XML:分類和使用XML架構集閤 271
9.4.1 SQL Server XML架構集閤 272
9.4.2 有類型的XML 273
9.4.3 XML架構和架構集閤的管理 275
9.4.4 XML架構集閤的安全性和強類型實例 277
9.5 在XML列中創建索引 278
9.6 XML類型函數 279
9.7 SELECT…FOR XML的增強 279
9.7.1 FOR XML PATH模式 281
9.7.2 生成XML數據類型 282
9.7.3 生成一個內聯XSD格式的架構 283
9.7.4 NULL數據庫值 284
9.7.5 産生根元素 285
9.7.6 其他特徵 286
9.8 SQL和XML數據類型的映射 287
9.8.1 將SQL類型映射到XML類型 287
9.8.2 String,Binary和Decimal類型 288
9.8.3 其他通用的數據類型 289
9.8.4 Date數據類型 289
9.8.5 基於模式的數據類型 289
9.8.6 通配符數據類型 290
9.8.7 可為空性 290
9.9 增強的OpenXML 290
9.10 從文件加載XML到數據庫中 291
9.11 ANSI SQL標準兼容性 292
9.11.1 XML數據類型 293
9.11.2 將SQL目錄和錶映射到XML 294
9.11.3 將SQL數據類型映射為XML數據類型 295
小結 296
第10章 XML查詢語言:XQuery和XPath 297
10.1 什麼是XQuery 297
10.2 XQuery入門 298
10.2.1 XQuery序 301
10.2.2 XQuery體 302
10.3 比較XQuery和SQL的異同 307
10.4 在XQuery中使用XML數據類型 310
10.4.1 xml.exist(字符串XQuery文本) 310
10.4.2 xml.value (字符串xquery文本, 字符串SQLType) 311
10.4.3 xml.query(字符串XQuery文本) 313
10.4.4 xml.node(字符串XQuery文本) 315
10.4.5 XQuery標準函數和操作符 318
10.4.6 SQL Server XQuery函數和操作符 319
10.5 SQL Server支持的XQuery函數 319
10.6 SQL Server支持的Xquery操作符 320
10.6.1 SQL Server XQuery擴展函數 321
10.6.2 在SQL Server XQuery中的多文檔查詢 323
10.7 XML DML:更新XML列 323
10.7.1 xml.modify(‘insert…’) 324
10.7.2 xml.modify(‘delete…’) 327
10.7.3 xml.modify(‘replace value of…’) 327
10.7.4 通用結論和最佳實踐 327
10.8 在SQL Server內使用XQuery的一些特殊考慮 328
10.8.1 XML Schema和SQL Server 2005 XQuery 328
10.8.2 在XQuery中XML索引的用法 329
小結 331
第11章 SQL Server Service Broker 332
11.1 消息處理應用程序 332
11.2 消息處理 339
11.3 業務事務 343
11.3.1 服務程序 345
11.3.2 會話 349
11.3.3 會話組 352
11.3.4 消息類型 357
11.3.5 約定 360
11.3.6 SEND語句和消息類型 362
11.3.7 循環處理 364
11.3.8 毒藥消息 368
11.3.9 補償 369
11.3.10 分布式 370
小結 382
第12章 作為Web服務平颱的 SQL Server 2005 383
12.1 混閤使用數據庫和Web服務 383
12.1.1 HTTP端點聲明 384
12.1.2 CREATE ENDPOINT語句 388
12.1.3 端點URL 389
12.1.4 端點狀態 390
12.1.5 端點元數據 390
12.1.6 Web方法 391
12.1.7 Web服務定義語言 395
12.1.8 XML命名空間 417
12.1.9 生成WSDL 418
12.1.10 Web服務中的存儲過程 426
12.1.11 SQL批處理 432
12.1.12 其他特徵 436
12.1.13 SQLXML 4.0與SQL Server 2005 437
小結 445
第13章 SQL Server 2005與客戶端 447
13.1 SQL本地客戶端 447
13.2 新數據類型和數據類型兼容模式 449
13.3 用戶自定義類型和關係數據訪問API 450
13.4 在ADO.NET中使用.NET Framework UDT 450
13.5 從DataReader中獲取UDT 451
13.6 在ODBC、OLE DB和ADO客戶端中使用.NETFramework UDT 456
13.7 在客戶端支持XML數據類型 458
13.7.1 在ADO.NET中使用XML數據類型 458
13.7.2 把XML數據當作XML或字符串返迴 460
13.7.3 文檔、文檔片斷和FORXML支持 461
13.7.4 在經典ADO中使用XML數據類型 464
13.8 在客戶端支持大值數據類型 465
13.9 查詢通知支持 468
13.9.1 SQL Server 2005中的查詢通知 469
13.9.2 在OLE DB和ODBC中使用查詢通知 471
13.9.3 嚮最終用戶或緩存分發通知 472
13.9.4 從數據庫客戶端使用查詢通知 474
13.9.5 使用SqlDependency 474
13.9.6 使用SqlNotification Request 476
13.9.7 在ASP.NET中使用SqlCacheDependency 478
13.9.8 主動通知 479
13.9.9 什麼時候不該使用通知 480
13.10 多活動結果集 480
13.10.1 在ADO.NET 2.0 中使用MARS 482
13.10.2 SQL本地客戶端中的MARS 485
13.11 ADO.NET中新的事務和隔離特性 485
13.11.1 使用新的隔離級彆 485
13.11.2 可升級、聲明性事務 486
13.12 SQL Server 2005登錄相關的改變 488
13.12.1 修改密碼支持 488
13.12.2 故障轉移支持 489
13.12.3 加密支持 490
13.13 對比存儲過程的客戶端和服務器端模型 491
小結 491
第14章 ADO.NET 2.0和SqlClient 492
14.1 使用ADO.NET 2.0基類和工廠進行泛型編程 492
14.2 提供者工廠 495
14.3 指定配置信息 497
14.4 枚舉數據源和構造連接字符串 498
14.5 泛型編程的其他注意事項 500
14.6 ADO.NET 2.0中的架構 501
14.6.1 不管怎樣,誰需要元數據呢 502
14.6.2 可以使用哪些元數據 503
14.6.3 定製和擴展元數據 506
14.6.4 用戶定製 507
14.7 跟蹤數據訪問 509
14.7.1 安裝數據跟蹤 509
14.7.2 運行跟蹤 511
14.7.3 把結果收集成CSV文件 511
14.7.4 閱讀跟蹤輸齣 512
14.7.5 用戶數據和ADO.NET跟蹤 512
14.7.6 配置對哪些應用程序進行跟蹤 514
14.7.7 使用跟蹤來調試一個參數綁定問題 515
14.7.8 深入數據跟蹤 516
14.7.9 什麼是ETW 517
14.8 異步支持 517
14.9 SqlClient中的批量導入 521
14.10 客戶端統計 523
14.11 .NET Framework 2.0 DataSet和SqlDataAdapter增強 525
小結 527
第15章 SQL Server管理對象 529
15.1 簡介 529
15.1.1 為什麼使用SMO 531
15.1.2 ADO.NET與SMO的對比 533
15.2 對象模型 534
15.3 SMO項目 536
15.4 連接 539
15.4.1 默認的Windows認證連接 540
15.4.2 使用Runas 541
15.4.3 自動連接 541
15.4.4 仿冒其他Windows身份 542
15.4.5 SQL Server登錄 543
15.4.6 修改SQL Server登錄密碼 544
15.4.7 連接管理 545
15.5 Server 546
15.6 SMO對象 547
15.6.1 對象標識和URN 547
15.6.2 GetSmoObject 549
15.6.3 URN對象獲取限製 550
15.6.4 SMO 對象模型 551
15.6.5 SMO屬性 552
15.6.6 瀏覽SMO父對象 554
15.6.7 SMO狀態 555
15.7 創建、修改和刪除 555
15.8 腳本 559
15.9 配置管理 565
小結 566
第16章 通知服務 567
16.1 什麼是SQL Server通知服務 567
16.2 通知應用程序 568
16.3 SQL Server通知服務的組件 570
16.4 通知應用程序設計模式 572
16.5 通知服務發送特性 573
16.6 通知服務使用的術語 573
16.7 設計、編碼以及生成通知服務應用程序 574
16.7.1 計劃步驟 574
16.7.2 編碼步驟 575
16.7.3 應用程序生成步驟 575
16.8 一個示例通知服務應用程序 575
16.9 實例和應用程序配置文件 576
16.9.1 實例配置文件 576
16.9.2 應用程序定義文件 580
16.9.3 NSControl 582
16.10 事件 584
16.10.1 事件類型 584
16.10.2 事件存儲過程 587
16.10.3 事件提供者 589
16.10.4 編目 592
16.11 訂閱者和訂閱 593
16.11.1 訂閱類型 594
16.11.2 訂閱者 595
16.11.3 訂閱 597
16.12 通知 599
16.13 格式化器和分發器 602
16.14 發送 603
16.14.1 發送協議 604
16.14.2 定製 606
小結 606
第17章 結語:麵嚮服務的數據庫應用程序 607
17.1 許多新特性:怎樣使用它們 607
17.2 數據模型、編程和SQL Server 607
17.3 任一層麵的任一功能 608
17.4 什麼纔是最佳實踐 609
17.5 朝著麵嚮服務的數據庫體係結構邁進 615
17.6 數據庫作為平颱的一部分 617
附錄A .NET Framework 101 618
附錄B SQL Server ManagementStudio 636
附錄C Visual Studio 2005集成:SQL Server項目 654
· · · · · · (
收起)