內容簡介
本書由SQLServer領域內兩位專家所寫,結合清楚的描述和大量範例,全面介紹了SQLServer2005中對開發者有用的新特性。同時還給出有價值的最佳實踐和指導,便於開發者迅速掌握這些新特性,在適當的時機選擇適當的特性開發新一代資料庫應用程式。
全書共17章,書中內容完全基於SQLServer2005正式版且經過廣泛的探討和篩選,對SQLServer開發者具有非常高的參考價值。
圖書目錄
第1章 引言
1.1 .NET Framework和Microsoft平台
1.2 .NET Framework對SQL Server的影響
1.3 SQL :1999標準:擴展關係模型
1.4 用戶定義的類型與SQL Server
1.5 XML:數據和文檔存儲
1.6 Web服務:XML作為一種封送格式
1.7 客戶訪問以及客戶
1.7.1 客戶端資料庫API和SQL Server 2005
1.7.2 客戶端基於XML 的API與SQL Server 2005的集成
1.8 擴展SQL Server到平台:Service Broker和Notification Service
小結
第2章 宿主運行時:SQL Server作為一個運行時宿主
2.1 為什麼要關心宿主的工作原理
2.2 什麼是.NET Framework運行時宿主
2.3 SQL Server作為一個運行時宿主
2.3.1 SQL Server的資源管理
2.3.2 異常情況處理
2.3.3 載入代碼
2.3.4 安全性
2.4 載入運行時:進程和AppDomain
2.5 安全代碼:運行時如何安全運行“外部”代碼
2.6 代碼存在何處:存儲.NET Framework程式集(CREATE ASSEMBLY)
2.7 程式集依賴:當自己的程式集使用其他程式集時
2.8 程式集和SQL架構:誰擁有程式集(信息架構)
2.8.1 系統元數據表和INFORMATION_SCHEMA
2.8.2 程式集元數據
2.9 維護用戶程式集(ALTER ASSEMBLY,DROP ASSEMBLY)
2.10 遵循規範
2.11 結論
小結
第3章 .NET CLR語言中的過程和函式
3.1 擴展SQL Server
3.2 CLR擴展基礎
3.3 CLR擴展詳解
3.4 System.Data.SqlTypes
3.4.1 關於空值的一些說明
3.4.2 使用SqlTypes
3.5 參數和返回值
3.6 用戶定義的函式
3.7 表值函式
3.8 存儲過程
3.9 觸發器
小結
第4章 進程內數據訪問
4.1 用SqlClient編程
4.2 上下文:SqlContext類
4.3 連線
4.4 命令:使事情發生
4.5 獲得結果
4.6 事務
4.6.1TransactionScope的另類用法 88
4.6.2最佳實踐 89
4.7管道 90
4.8創建並傳送新的行集 92
4.9使用WindowsIdentity 93
4.10從SQLCLR調用一個Web服務 94
4.11異常處理 97
4.12SqlTriggerContext 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.4IBinarySerialize.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.15Format.Native與
Format.UserDefined 148
小結 150
第6章安全性 152
6.1SQLServer2005中新的安全性特徵 152
6.2默認設定為關閉的可選特徵 153
6.2.1配置安全性設定 153
6.2.2安全性和元數據 155
6.3增強的SQLServer安全性概念簡單回顧 155
6.3.1認證和授權:用戶和許可權 155
6.3.2執行上下文和擁有權鏈 160
6.4SQLServer密碼策略和證書 163
6.5加密密鑰和內置加密函式 165
6.6加密函式 167
6.7用戶和架構的分離 172
6.8同義詞 175
6.9指定過程代碼的執行上下文 176
6.10代碼簽名 179
6.11SQLServer許可權和SQLCLR對象 181
6.12程式集許可權:誰可以編目和使用程式集 182
6.13在SQLServer安全級別內,.NETFramework代碼可以做什麼? 186
6.13.1代碼訪問安全性入門 186
6.13.2代碼訪問安全性和.NETFramework程式集 187
小結 190
第7章SQL引擎增強 191
7.1SQL引擎的改進 191
7.2SNAPSHOT隔離 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.1Transact-SQL的改進 215
8.2錯誤處理 215
8.3INTERSECT和EXCEPT 225
8.4TOP 228
8.5ONDELETE和ONUPDATE 230
8.6OUTPUT 232
8.7APPLY操作符 235
8.8通用表表達式 237
8.9遞歸查詢 243
8.10PIVOT和UNPIVOT操作符 249
8.10.1PIVOT 249
8.10.2UNPIVOT 253
8.11分級和分區 254
8.11.1ROW_NUMBER 255
8.11.2RANK 256
8.11.3DENSE_RANK 257
8.11.4NTILE 257
8.11.5PARTITIONBY 258
8.11.6聚合分區 259
8.12TABLESAMPLE 261
小結 264
第9章資料庫中的XML:XML數據類型 265
9.1XML數據類型 265
9.2在表中使用XML數據類型 266
9.3使用XML數據變數和參數 270
9.4有類型和無類型的XML:分類和
使用XML架構集合 271
9.4.1SQLServerXML架構集合 272
9.4.2有類型的XML 273
9.4.3XML架構和架構集合的管理 275
9.4.4XML架構集合的安全性和強類型實例 277
9.5在XML列中創建索引 278
9.6XML類型函式 279
9.7SELECT…FORXML的增強 279
9.7.1FORXMLPATH模式 281
9.7.2生成XML數據類型 282
9.7.3生成一個內聯XSD格式的
架構 283
9.7.4NULL資料庫值 284
9.7.5產生根元素 285
9.7.6其他特徵 286
9.8SQL和XML數據類型的映射 287
9.8.1將SQL類型映射到XML類型 287
9.8.2String,Binary和
Decimal類型 288
9.8.3其他通用的數據類型 289
9.8.4Date數據類型 289
9.8.5基於模式的數據類型 289
9.8.6通配符數據類型 290
9.8.7可為空性 290
9.9增強的OpenXML 290
9.10從檔案載入XML到資料庫中 291
9.11ANSISQL標準兼容性 292
9.11.1XML數據類型 293
9.11.2將SQL目錄和表映射到
XML 294
9.11.3將SQL數據類型映射為XML數據類型 295
小結 296
第10章XML查詢語言:XQuery和XPath 297
10.1什麼是XQuery 297
10.2XQuery入門 298
10.2.1XQuery序 301
10.2.2XQuery體 302
10.3比較XQuery和SQL的異同 307
10.4在XQuery中使用XML數據類型 310
10.4.1xml.exist(字元串XQuery文本) 310
10.4.2xml.value(字元串xquery文本,字元串SQLType) 311
10.4.3xml.query(字元串XQuery文本) 313
10.4.4xml.node(字元串XQuery文本) 315
10.4.5XQuery標準函式和操作符 318
10.4.6SQLServerXQuery函式和操作符 319
10.5SQLServer支持的XQuery函式 319
10.6SQLServer支持的Xquery操作符 320
10.6.1SQLServerXQuery擴展函式 321
10.6.2在SQLServerXQuery中的多文檔查詢 323
10.7XMLDML:更新XML列 323
10.7.1xml.modify(‘insert…’) 324
10.7.2xml.modify(‘delete…’) 327
10.7.3xml.modify(‘replacevalueof…’) 327
10.7.4通用結論和最佳實踐 327
10.8在SQLServer內使用XQuery的一些特殊考慮 328
10.8.1XMLSchema和SQLServer
2005XQuery 328
10.8.2在XQuery中XML索引的用法 329
小結 331
第11章SQLServerServiceBroker 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.6SEND語句和訊息類型 362
11.3.7循環處理 364
11.3.8毒藥訊息 368
11.3.9補償 369
11.3.10分散式 370
小結 382
13.12.1修改密碼支持 488
13.12.2故障轉移支持 489
13.12.3加密支持 490
13.13對比存儲過程的客戶端和伺服器端模型 491
小結 491
第14章ADO.NET2.0和SqlClient 492
14.1使用ADO.NET2.0基類和工廠進行泛型編程 492
14.2提供者工廠 495
14.3指定配置信息 497
14.4枚舉數據源和構造連線字元串 498
14.5泛型編程的其他注意事項 500
14.6ADO.NET2.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.9SqlClient中的批量導入 521
14.10客戶端統計 523
14.11.NETFramework2.0DataSet和SqlDataAdapter增強 525
小結 527
第15章SQLServer管理對象 529
15.1簡介 529
15.1.1為什麼使用SMO 531
15.1.2ADO.NET與SMO的對比 533
15.2對象模型 534
15.3SMO項目 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.5SQLServer登錄 543
15.4.6修改SQLServer登錄密碼 544
15.4.7連線管理 545
15.5Server 546
15.6SMO對象 547
15.6.1對象標識和URN 547
15.6.2GetSmoObject 549
15.6.3URN對象獲取限制 550
15.6.4SMO對象模型 551
15.6.5SMO屬性 552
15.6.6瀏覽SMO父對象 554
15.6.7SMO狀態 555
15.7創建、修改和刪除 555
15.8腳本 559
15.9配置管理 565
小結 566
第16章通知服務 567
16.1什麼是SQLServer通知服務 567
16.2通知應用程式 568
16.3SQLServer通知服務的組件 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.3NSControl 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數據模型、編程和SQLServer 607
17.3任一層面的任一功能 608
17.4什麼才是最佳實踐 609
17.5朝著面向服務的資料庫體系結構邁進 615
17.6資料庫作為平台的一部分 617
附錄A.NETFramework101 618
附錄BSQLServerManagementStudio 636
附錄CVisualStudio2005集成:SQLServer項目 654