SQL Server 2012編程入門經典(第4版)

SQL Server 2012編程入門經典(第4版)

《SQL Server 2012編程入門經典(第4版)》是於2014年8月1日出版的一本圖書。

基本介紹

  • 書名:SQL Server 2012編程入門經典(第4版)
  • 出版社清華大學出版社
  • 出版時間:2014年8月1日
  • 定價:89 元
  • 裝幀平裝
  • ISBN:9787302316510
圖書簡介,目錄,

圖書簡介

這本循序漸進的教程介紹如何創建效率更高的管理程式,如何從SQL Server資料庫環境中獲得商務智慧型。本書探討了SQL的基本對象、基本查詢和連線,然後把對象添加到資料庫中,並使用對物理設計非常重要駝蘭妹舟的項。接著研究了棕府欠SQL Server腳本的編寫。最後討論了如何使用SQLServer 2012的功能為主流套用程式建立主流數據庫。章龍驗

目錄

第1章 RDBMS基礎:SQL Server數據
庫的構成 1
1.1 資料庫對象概述 2
1.1.1 資料庫對象 2
1.1.2 事務日誌 6
1.1.3 最基本的資料庫對象:表 7
1.1.4 檔案組 8
1.1.5 資料庫關係圖 8
1.1.6 視圖 9
1.1.7 存儲過程 9
1.1.9 序列 10
1.1.10 用戶和角色 10
1.1.11 規則 10
1.1.12 默認值 11
1.1.13 用戶自定義船和數據類型 11
1.1.14 全文目錄 11
1.2 SQL Server數據類型 11
1.3 SQL Server對象標識符 15
1.3.1 需要命名的對象 16
1.3.2 命名規則 16
1.4 本章小結 17
第2章 SQL Server管理工具 19
2.1 使用在線上叢書獲得幫助 20
2.2 SQL Server配置管理器 21
2.2.1 服務管理 21
2.2.2 網路配置 21
2.2.3 協定 23
2.2.4 客戶端 24
2.3 SQL Server Management
Studio 26
2.3.1 啟動Management Studio 27
2.3.2 通過“查詢”視窗互動 30
2.4 SQL Server Data Tools
(以前稱為BIDS) 36
2.5 SQL Server集成服務(SSIS) 37
2.6SQLServerReportingServices
(SSRS) 37
2.7SQLServerAnalysisServices
(SSAS) 38
2.8BulkCopyProgram(bcp) 38
2.9SQLServerProfiler 38
2.10sqlcmd 39
2.11PowerShell 39
2.12本章小結 39
第3章T-SQL基本語句 41
3.1基本SELECT語句 42
3.1.1SELECT語句與
FROM子句 42
3.1.2WHERE子句 46
3.1.3ORDERBY子句 48
3.1.4使用GROUPBY子句
聚合數據 51
3.1.5使用HAVING子句給分組
設定條件 59
3.1.6使用FORXML子句
輸出XML 61
3.1.7通過OPTION子句
利用提示 61
3.1.8DISTINCT和ALL謂詞 61
3.2使用INSERT語句添加數據 64
3.2.1多行插入 69
3.2.2INSERTINTO…
SELECT語句 69
3.3用UPDATE語句更改獲得的
數據 71
3.4DELETE語句 73
3.5本章小結 75
第4章連線 77
4.1連線 78
4.2內部連線 79
4.3使用外部連線檢索更多數據 86
4.3.1簡單的外部連線 86
4.3.2處理更複雜的外部連線 92
4.4完全連線 97
4.5交叉連線 98
4.6JOIN語句的早期語法結構 100
4.6.1內部連線的早期語法結判再連構 100
4.6.2外部連線的早期語法結構 101
4.6.3交叉連線的早期語法結構 102
4.7聯合 103
4.8本章小結 106
第5章創建和修改數據表 109
5.1SQLServer中的對象名 109
5.1.1模式名(也稱為所有權戒辯催院) 110
5.1.2資料庫名 112
5.1.3通過伺服器命名 113
5.1.4回顧默認值 113
5.2CREATE語句 113
5.2.1CREATEDATABASE 114
5.2.2構建資料庫 118
5.2.3CREATETABLE 120
5.3ALTER語句 131
5.3.1ALTERDATABASE 131
5.3.2ALTERTABLE 135
5.4DROP語句 139
5.5使用GUI工具 139
5.5.1使用ManagementStudio
創建資料庫 140
5.5.2回到代碼:使用Management
Studio創建腳本 144
5.6本章小結 145
第6章鍵和約束 147
6.1約束的類型 148
6.1.1域約束 148
6.1.2實體約束 149
6.1.3參乎淚奔照完整性約束 149
6.2約束命名 149
6.3鍵約束 150
6.3.1主鍵約束 150
6.3.2外鍵約束 153
6.3.3獨一的約束 164
6.4CHECK約束 165
6.5DEFAULT約束 166
6.5.1在CREATETABLE語句中
定義DEFAULT約束 167
6.5.2在已存在的表中添加
6.7規則和默認值 172
6.7.1規則 173
6.7.2刪除規則 174
6.7.3默認值 174
6.7.4刪除默認值 175
6.7.5確定哪些表和數據類型使用
給定的規則或默認值 175
6.8用於實現數據完整性
觸發器 176
6.9如何選擇 176
6.10本章小結 177
第7章更複雜的查詢 179
7.1子查詢的概念 180
7.2關聯子查詢 184
7.2.1關聯子查詢的工作原理 184
7.2.2處理NULL數據——
ISNULL函式 188
7.3派生表 189
7.4使用通用表表達式(CTE) 192
7.4.1使用WITH關鍵字 192
7.4.2使用多個CTE 194
7.4.3遞歸CTE 195
7.5使用EXISTS運算符 195
7.5.1使用EXISTS篩選數據 195
7.5.2以其他方式使用EXISTS 197
7.6混合數據類型:
CAST和CONVERT 199
7.7使用MERGE命令同步數據 202
7.7.1實際使用MERGE命令 202
7.7.2BYTARGET和
BYSOURCE 205
7.8使用OUTPUT子句
收集受影響的行 206
7.9研究視窗化函式 208
7.9.1ROW_NUMBER 208
7.9.2RANK、DENSE_RANK和
NTILE 211
7.10一次一個數據塊:
特殊的查詢分頁 212
7.11性能方面的考慮 213
7.11.1測量性能 214
7.11.2JOIN、子查詢和
CTE的對比 215
7.12本章小結 216
第8章規範化和其他基本設計問題 219
8.1理解表 219
8.2保持數據“規範” 220
8.2.1準備工作 221
8.2.2第一範式 222
8.2.3第二範式 225
8.2.4第三範式 226
8.2.5其他範式 228
8.3理解關係 229
8.3.1一對一關係 229
8.3.2零或一對一關係 230
8.3.3一對一或一對多關係 230
8.3.4一對零、一對一或
一對多關係 231
8.3.5多對多關係 232
8.4資料庫關係圖 234
8.4.1表 236
8.4.2在資料庫關係圖中
創建關係 242
8.5反規範化 245
8.6超出規範化的一些規則 245
8.6.1保持簡單 245
8.6.2選擇數據類型 246
8.6.3儘量進行存儲 246
8.7創建一個快速示例 247
8.7.1創建資料庫 247
8.7.2添加資料庫關係圖和
初始表 247
8.7.3添加關係 251
8.7.4添加一些約束 253
8.8本章小結 253
第9章SQLServer存儲和索引
結構 255
9.1SQLServer存儲機制 255
9.1.1資料庫 255
9.1.2區段 256
9.1.3頁 256
9.1.4行 257
9.1.5稀疏列 257
9.2理解索引 258
9.2.1平衡樹(B-樹) 259
9.2.2SQLServer中的數據
訪問方式 261
9.3創建、修改和刪除索引 269
9.3.1CREATEINDEX語句 269
9.3.2創建XML索引 274
9.3.3隨約束創建的隱含索引 275
9.3.4在稀疏列和地理空間列上
創建索引 275
9.4明智地選擇——在何時何地
使用何種索引 276
9.4.1選擇性 276
9.4.2注意成本:少即是多 279
9.4.3選擇群集索引 279
9.4.4列順序問題 281
9.4.5覆蓋索引 282
9.4.6過濾索引 282
9.4.7修改索引 283
9.4.8刪除索引 286
9.4.9從查詢計畫中獲取提示 286
9.4.10索引未被使用的原因 286
9.4.11使用資料庫引擎
調整嚮導 287
9.5維護索引 287
9.5.1碎片 288
9.5.2確定碎片和頁拆分的
可能性 288
9.6本章小結 292
第10章視圖 295
10.1創建簡單的視圖 295
10.2使用T-SQL編輯視圖 307
10.3刪除視圖 307
10.4在ManagementStudio中
創建和編輯視圖 307
10.4.1在ManagementStudio
中創建視圖 308
10.4.2在ManagementStudio中
編輯視圖 310
10.5審查:顯示現有的代碼 311
10.6保護代碼:加密視圖 312
10.7關於模式綁定 314
10.8使用VIEW_METADATA使
視圖看起來像表一樣 314
10.9索引(物化)視圖 314
10.10索引聚集視圖 317
10.11本章小結 320
第11章編寫腳本和批處理 323
11.1腳本的基礎知識 324
11.1.1使用USE語句選擇
資料庫環境 324
11.1.2聲明變數 325
11.1.3設定變數中的值 326
11.1.4系統函式回顧 328
11.1.5檢索標識值 329
11.1.6生成序列 333
11.1.7使用@@ROWCOUNT 336
11.2將語句分組到批處理中 337
11.2.1自成一行 338
11.2.2每個批處理單獨傳送到
伺服器 338
11.2.3GO不是T-SQL命令 339
11.2.4批處理中的錯誤 339
11.2.5何時使用批處理 339
11.3從命令提示符運行:
sqlcmd 343
11.4動態SQL:用EXEC命令
動態生成代碼 347
11.4.1動態生成代碼 347
11.4.2理解動態SQL的
危險性 349
11.5使用控制流語句 353
11.5.1IF…ELSE語句 353
11.5.2CASE語句 357
11.5.3用WHILE語句
進行循環 362
11.5.4WAITFOR語句 364
11.5.5使用TRY/CATCH塊
處理錯誤 364
11.6本章小結 367
第12章存儲過程 369
12.1創建存儲過程:
基本語法 370
12.2使用ALTER修改
存儲過程 371
12.3刪除存儲過程 372
12.4參數化存儲過程 372
12.4.1聲明參數 372
12.4.2通過返回值確認成功或
失敗 378
12.4.3如何使用RETURN 378
12.5錯誤處理 380
12.5.1處理內聯錯誤 381
12.5.2利用@@ERROR 382
12.5.3在存儲過程中使用
@@ERROR 383
12.5.4在錯誤發生前
處理錯誤 386
12.5.5手動引發錯誤 392
12.5.6重新拋出錯誤 396
12.5.7添加自定義的
錯誤訊息 397
12.6存儲過程的優點 399
12.6.1創建可調用的進程 399
12.6.2為了安全性而使用
存儲過程 399
12.6.3存儲過程和性能 400
12.7擴展存儲過程(XP) 402
12.8遞歸簡介 402
12.9調試 404
12.9.1啟動調試器 405
12.9.2調試器的組成 405
12.9.3使用斷點進行中斷 408
12.9.4使用調試器 410
12.10理解.NET程式集 413
12.11使用存儲過程的時機 413
12.12本章小結 414
13.1UDF的定義 417
13.2返回標量值的UDF 418
13.3返回表的UDF 424
13.3.1內聯UDF 424
13.3.2理解確定性 430
13.4調試用戶自定義函式 433
13.5資料庫中的.NET 433
13.6本章小結 434
第14章事務和鎖 435
14.1事務 435
14.1.1ACID事務 436
14.1.2事務操作簡介 436
14.1.3BEGINTRAN 437
14.1.4COMMITTRAN 437
14.1.5ROLLBACKTRAN 437
14.1.6SAVETRAN 437
14.2SQLServer日誌的
工作方式 439
14.2.1失敗和恢復 440
14.2.2激活隱式事務 442
14.3鎖和並發 442
14.3.1鎖的用途 443
14.3.2可以鎖定的資源 446
14.3.3鎖升級和鎖對性能的
影響 446
14.3.4鎖定模式 447
14.3.5鎖的兼容性 448
14.3.6指定一種特有的鎖定
類型——最佳化器提示 449
14.4設定隔離級別 450
14.4.1READCOMMITTED 451
14.4.2READUNCOMM-
ITTED 451
14.4.3REPEATABLEREAD 452
14.4.4SERIALIZABLE 452
14.4.5SNAPSHOT 452
14.5處理死鎖(1205錯誤) 453
14.5.1SQLServer判斷死鎖的
方式 453
14.5.2選擇死鎖犧牲者的
方式 453
14.5.3避免死鎖 453
14.6本章小結 456
第15章觸發器 459
15.1觸發器的概念 460
15.1.1ON子句 461
15.1.2WITHENCRYPTION
選項 461
15.1.3FOR|AFTER 462
15.1.4FOR|AFTER子句與
INSTEADOF子句 463
15.1.5NOTFOR
REPLICATION選項 464
15.1.6AS子句 464
15.2使用觸發器實施數據
完整性規則 464
15.2.1處理來自於其他表的
需求 465
15.2.2使用觸發器來檢查
更新的變化 466
15.2.3將觸發器用於自定義
錯誤訊息 468
15.3觸發器的其他常見用途 468
15.4觸發器的其他問題 468
15.4.1觸發器可以嵌套 469
15.4.2觸發器可以遞歸 469
15.4.3觸發器不能防止體系
結構的修改 469
15.4.4可以在不刪除的情況下
關閉觸發器 470
15.4.5觸發器的激活順序 470
15.5INSTEADOF觸發器 472
15.6性能考慮 472
15.6.1觸發器的被動性 472
15.6.2觸發器與激活的進程
之間不存在並發問題 472
15.6.3使用IFUPDATE()和
COLUMNS_
UPDATED() 473
15.6.4保持觸發器短小精悍 475
15.6.5選擇索引時不要忘記
觸發器 475
15.6.6不要在觸發器中
進行回滾 475
15.7刪除觸發器 476
15.8調試觸發器 476
15.9本章小結 477
第16章初識XML 479
16.1XML基礎 480
16.1.1XML文檔的各個
組成部分 481
16.1.2名稱空間 489
16.1.3元素內容 491
16.1.4有效與格式良好——
架構和DTD 492
16.2SQLServer提供的
XML支持 492
16.2.1將列定義為XML
類型 493
16.2.2XML架構集合 494
16.2.3創建、修改和刪除
XML架構集合 496
16.2.4XML數據類型方法 498
16.2.5強制執行架構集合
之外的約束 504
16.2.6用XML格式檢索
關係數據 505
16.2.7RAW選項 506
16.2.8AUTO選項 509
16.2.9EXPLICIT選項 510
16.2.10PATH選項 512
16.2.11OPENXML函式 517
16.3XSLT簡介 521
16.4本章小結 523
第17章商務智慧型基礎 525
17.1商務智慧型的概念 525
17.1.1BI優於其他方案 526
17.1.2根據數據做出決策 526
17.1.3不同的專家有不同的
觀點 528
17.1.4通過過去的業績預測
未來的行為 528
17.1.5誰使用BI 528
17.2數據倉庫 528
17.2.1數據倉庫的目標 529
17.2.2OLTP與OLAP 529
17.2.3Kimball與Inmon 530
17.3維度建模:為什麼是
規範化的 533
17.3.1度量值和度量指標 533
17.3.2事實 534
17.3.3維度 536
17.4ETL 542
17.4.1提供數據 542
17.4.2強制一致性 543
17.4.3通過定義數據來
解決衝突 544
17.4.42個、3個或
更多個階段 544
17.4.5在ETL過程中
處理並發 545
17.4.6快取提取的內容——
運算元據存儲(ODS) 546
17.5使數據可操作:
BI報表技術 546
17.5.1目標 547
17.5.3儀錶盤 549
17.5.4記分卡 549
17.5.5明細表 549
17.5.6下鑽 550
17.5.7鑽取 550
17.5.8臨時報表 551
17.6本章小結 551
第18章BI存儲和報表資源 553
18.1T-SQL中的BI 554
18.1.1AdventureWorks
數據倉庫 554
18.1.2使用T-SQL分析函式 555
18.1.3columnstore索引 563
18.2SQLServerAnalysis
Services 564
18.3建立第一個多維數據集 565
18.3.1數據源 571
18.3.2數據源視圖 572
18.3.3多維數據集 572
18.3.4度量值組 573
18.3.5維度 574
18.3.6多維數據集的
其他內容 576
18.4自助式BI:用戶工具 576
18.4.1報表構建器 577
18.4.2PowerPivot:帶有
SharePoint和Excel的
輕型BI 577
18.4.3PowerView 579
18.5小結 579
第19章ReportingServices 581
19.1ReportingServices101 581
19.2理解SSRS報表的
生命周期 582
19.2.1在SSRS中開發報表 582
19.2.2管理報表 583
19.2.3把報表發布給用戶 583
19.3理解ReportingServices
體系結構 583
19.3.1SSDT:報表設計器 584
19.3.2SSRSWindows服務 584
19.3.3報表管理器 584
19.3.4報表構建器 584
19.3.5報表查看器 584
19.4構建簡單的報表模型 585
19.4.1創建項目 585
19.4.2給數據模型
添加內容 593
19.4.3構建和部署
數據模型 598
19.4.4創建報表 599
19.5報表伺服器項目 607
19.5.1建立報表伺服器項目 607
19.5.2部署報表 612
19.6本章小結 613
第20章使用IntegrationServices
進行集成 615
20.1理解問題 615
20.2使用導入/導出嚮導生成
基本的程式包 616
20.2.1啟動嚮導 616
20.2.2選擇數據源 617
20.2.3完成嚮導 620
20.3程式包基礎知識 622
20.3.1“連線管理器”面板 623
20.3.2程式包編輯器面板 625
20.4執行程式包 632
20.4.1在DevelopmentStudio中
執行程式包 633
20.4.2在SSMS中執行 633
20.4.3使用執行包實用工具 635
20.4.4使用SQLServerAgent
執行程式包 638
20.4.5從程式中執行程式包 638
20.5關於程式包的補充說明 638
20.6本章小結 638
第21章扮演管理員的角色 641
21.1調度作業 642
21.1.1創建操作員 643
21.1.2創建作業和步驟 644
21.2登錄和用戶 651
21.2.1安全模式 652
21.2.2創建登錄和用戶 652
21.2.3許可和擁有權 654
21.3備份和恢復 654
21.3.1創建備份 655
21.3.2恢復模式 658
21.3.3還原 658
21.4索引維護 660
21.5數據歸檔 662
21.6基於策略的管理 663
21.7用POWERSHELL自動完成
管理任務 663
21.7.1PowerShell 663
21.7.2安裝和啟用
PowerShell 664
21.7.3cmdlet和模組 664
21.7.4Sqlps 664
21.7.5部署和執行 666
21.8本章小結 667
附錄A習題答案 669
3.1.2WHERE子句 46
3.1.3ORDERBY子句 48
3.1.4使用GROUPBY子句
聚合數據 51
3.1.5使用HAVING子句給分組
設定條件 59
3.1.6使用FORXML子句
輸出XML 61
3.1.7通過OPTION子句
利用提示 61
3.1.8DISTINCT和ALL謂詞 61
3.2使用INSERT語句添加數據 64
3.2.1多行插入 69
3.2.2INSERTINTO…
SELECT語句 69
3.3用UPDATE語句更改獲得的
數據 71
3.4DELETE語句 73
3.5本章小結 75
第4章連線 77
4.1連線 78
4.2內部連線 79
4.3使用外部連線檢索更多數據 86
4.3.1簡單的外部連線 86
4.3.2處理更複雜的外部連線 92
4.4完全連線 97
4.5交叉連線 98
4.6JOIN語句的早期語法結構 100
4.6.1內部連線的早期語法結構 100
4.6.2外部連線的早期語法結構 101
4.6.3交叉連線的早期語法結構 102
4.7聯合 103
4.8本章小結 106
第5章創建和修改數據表 109
5.1SQLServer中的對象名 109
5.1.1模式名(也稱為所有權) 110
5.1.2資料庫名 112
5.1.3通過伺服器命名 113
5.1.4回顧默認值 113
5.2CREATE語句 113
5.2.1CREATEDATABASE 114
5.2.2構建資料庫 118
5.2.3CREATETABLE 120
5.3ALTER語句 131
5.3.1ALTERDATABASE 131
5.3.2ALTERTABLE 135
5.4DROP語句 139
5.5使用GUI工具 139
5.5.1使用ManagementStudio
創建資料庫 140
5.5.2回到代碼:使用Management
Studio創建腳本 144
5.6本章小結 145
第6章鍵和約束 147
6.1約束的類型 148
6.1.1域約束 148
6.1.2實體約束 149
6.1.3參照完整性約束 149
6.2約束命名 149
6.3鍵約束 150
6.3.1主鍵約束 150
6.3.2外鍵約束 153
6.3.3獨一的約束 164
6.4CHECK約束 165
6.5DEFAULT約束 166
6.5.1在CREATETABLE語句中
定義DEFAULT約束 167
6.5.2在已存在的表中添加
6.7規則和默認值 172
6.7.1規則 173
6.7.2刪除規則 174
6.7.3默認值 174
6.7.4刪除默認值 175
6.7.5確定哪些表和數據類型使用
給定的規則或默認值 175
6.8用於實現數據完整性
觸發器 176
6.9如何選擇 176
6.10本章小結 177
第7章更複雜的查詢 179
7.1子查詢的概念 180
7.2關聯子查詢 184
7.2.1關聯子查詢的工作原理 184
7.2.2處理NULL數據——
ISNULL函式 188
7.3派生表 189
7.4使用通用表表達式(CTE) 192
7.4.1使用WITH關鍵字 192
7.4.2使用多個CTE 194
7.4.3遞歸CTE 195
7.5使用EXISTS運算符 195
7.5.1使用EXISTS篩選數據 195
7.5.2以其他方式使用EXISTS 197
7.6混合數據類型:
CAST和CONVERT 199
7.7使用MERGE命令同步數據 202
7.7.1實際使用MERGE命令 202
7.7.2BYTARGET和
BYSOURCE 205
7.8使用OUTPUT子句
收集受影響的行 206
7.9研究視窗化函式 208
7.9.1ROW_NUMBER 208
7.9.2RANK、DENSE_RANK和
NTILE 211
7.10一次一個數據塊:
特殊的查詢分頁 212
7.11性能方面的考慮 213
7.11.1測量性能 214
7.11.2JOIN、子查詢和
CTE的對比 215
7.12本章小結 216
第8章規範化和其他基本設計問題 219
8.1理解表 219
8.2保持數據“規範” 220
8.2.1準備工作 221
8.2.2第一範式 222
8.2.3第二範式 225
8.2.4第三範式 226
8.2.5其他範式 228
8.3理解關係 229
8.3.1一對一關係 229
8.3.2零或一對一關係 230
8.3.3一對一或一對多關係 230
8.3.4一對零、一對一或
一對多關係 231
8.3.5多對多關係 232
8.4資料庫關係圖 234
8.4.1表 236
8.4.2在資料庫關係圖中
創建關係 242
8.5反規範化 245
8.6超出規範化的一些規則 245
8.6.1保持簡單 245
8.6.2選擇數據類型 246
8.6.3儘量進行存儲 246
8.7創建一個快速示例 247
8.7.1創建資料庫 247
8.7.2添加資料庫關係圖和
初始表 247
8.7.3添加關係 251
8.7.4添加一些約束 253
8.8本章小結 253
第9章SQLServer存儲和索引
結構 255
9.1SQLServer存儲機制 255
9.1.1資料庫 255
9.1.2區段 256
9.1.3頁 256
9.1.4行 257
9.1.5稀疏列 257
9.2理解索引 258
9.2.1平衡樹(B-樹) 259
9.2.2SQLServer中的數據
訪問方式 261
9.3創建、修改和刪除索引 269
9.3.1CREATEINDEX語句 269
9.3.2創建XML索引 274
9.3.3隨約束創建的隱含索引 275
9.3.4在稀疏列和地理空間列上
創建索引 275
9.4明智地選擇——在何時何地
使用何種索引 276
9.4.1選擇性 276
9.4.2注意成本:少即是多 279
9.4.3選擇群集索引 279
9.4.4列順序問題 281
9.4.5覆蓋索引 282
9.4.6過濾索引 282
9.4.7修改索引 283
9.4.8刪除索引 286
9.4.9從查詢計畫中獲取提示 286
9.4.10索引未被使用的原因 286
9.4.11使用資料庫引擎
調整嚮導 287
9.5維護索引 287
9.5.1碎片 288
9.5.2確定碎片和頁拆分的
可能性 288
9.6本章小結 292
第10章視圖 295
10.1創建簡單的視圖 295
10.2使用T-SQL編輯視圖 307
10.3刪除視圖 307
10.4在ManagementStudio中
創建和編輯視圖 307
10.4.1在ManagementStudio
中創建視圖 308
10.4.2在ManagementStudio中
編輯視圖 310
10.5審查:顯示現有的代碼 311
10.6保護代碼:加密視圖 312
10.7關於模式綁定 314
10.8使用VIEW_METADATA使
視圖看起來像表一樣 314
10.9索引(物化)視圖 314
10.10索引聚集視圖 317
10.11本章小結 320
第11章編寫腳本和批處理 323
11.1腳本的基礎知識 324
11.1.1使用USE語句選擇
資料庫環境 324
11.1.2聲明變數 325
11.1.3設定變數中的值 326
11.1.4系統函式回顧 328
11.1.5檢索標識值 329
11.1.6生成序列 333
11.1.7使用@@ROWCOUNT 336
11.2將語句分組到批處理中 337
11.2.1自成一行 338
11.2.2每個批處理單獨傳送到
伺服器 338
11.2.3GO不是T-SQL命令 339
11.2.4批處理中的錯誤 339
11.2.5何時使用批處理 339
11.3從命令提示符運行:
sqlcmd 343
11.4動態SQL:用EXEC命令
動態生成代碼 347
11.4.1動態生成代碼 347
11.4.2理解動態SQL的
危險性 349
11.5使用控制流語句 353
11.5.1IF…ELSE語句 353
11.5.2CASE語句 357
11.5.3用WHILE語句
進行循環 362
11.5.4WAITFOR語句 364
11.5.5使用TRY/CATCH塊
處理錯誤 364
11.6本章小結 367
第12章存儲過程 369
12.1創建存儲過程:
基本語法 370
12.2使用ALTER修改
存儲過程 371
12.3刪除存儲過程 372
12.4參數化存儲過程 372
12.4.1聲明參數 372
12.4.2通過返回值確認成功或
失敗 378
12.4.3如何使用RETURN 378
12.5錯誤處理 380
12.5.1處理內聯錯誤 381
12.5.2利用@@ERROR 382
12.5.3在存儲過程中使用
@@ERROR 383
12.5.4在錯誤發生前
處理錯誤 386
12.5.5手動引發錯誤 392
12.5.6重新拋出錯誤 396
12.5.7添加自定義的
錯誤訊息 397
12.6存儲過程的優點 399
12.6.1創建可調用的進程 399
12.6.2為了安全性而使用
存儲過程 399
12.6.3存儲過程和性能 400
12.7擴展存儲過程(XP) 402
12.8遞歸簡介 402
12.9調試 404
12.9.1啟動調試器 405
12.9.2調試器的組成 405
12.9.3使用斷點進行中斷 408
12.9.4使用調試器 410
12.10理解.NET程式集 413
12.11使用存儲過程的時機 413
12.12本章小結 414
13.1UDF的定義 417
13.2返回標量值的UDF 418
13.3返回表的UDF 424
13.3.1內聯UDF 424
13.3.2理解確定性 430
13.4調試用戶自定義函式 433
13.5資料庫中的.NET 433
13.6本章小結 434
第14章事務和鎖 435
14.1事務 435
14.1.1ACID事務 436
14.1.2事務操作簡介 436
14.1.3BEGINTRAN 437
14.1.4COMMITTRAN 437
14.1.5ROLLBACKTRAN 437
14.1.6SAVETRAN 437
14.2SQLServer日誌的
工作方式 439
14.2.1失敗和恢復 440
14.2.2激活隱式事務 442
14.3鎖和並發 442
14.3.1鎖的用途 443
14.3.2可以鎖定的資源 446
14.3.3鎖升級和鎖對性能的
影響 446
14.3.4鎖定模式 447
14.3.5鎖的兼容性 448
14.3.6指定一種特有的鎖定
類型——最佳化器提示 449
14.4設定隔離級別 450
14.4.1READCOMMITTED 451
14.4.2READUNCOMM-
ITTED 451
14.4.3REPEATABLEREAD 452
14.4.4SERIALIZABLE 452
14.4.5SNAPSHOT 452
14.5處理死鎖(1205錯誤) 453
14.5.1SQLServer判斷死鎖的
方式 453
14.5.2選擇死鎖犧牲者的
方式 453
14.5.3避免死鎖 453
14.6本章小結 456
第15章觸發器 459
15.1觸發器的概念 460
15.1.1ON子句 461
15.1.2WITHENCRYPTION
選項 461
15.1.3FOR|AFTER 462
15.1.4FOR|AFTER子句與
INSTEADOF子句 463
15.1.5NOTFOR
REPLICATION選項 464
15.1.6AS子句 464
15.2使用觸發器實施數據
完整性規則 464
15.2.1處理來自於其他表的
需求 465
15.2.2使用觸發器來檢查
更新的變化 466
15.2.3將觸發器用於自定義
錯誤訊息 468
15.3觸發器的其他常見用途 468
15.4觸發器的其他問題 468
15.4.1觸發器可以嵌套 469
15.4.2觸發器可以遞歸 469
15.4.3觸發器不能防止體系
結構的修改 469
15.4.4可以在不刪除的情況下
關閉觸發器 470
15.4.5觸發器的激活順序 470
15.5INSTEADOF觸發器 472
15.6性能考慮 472
15.6.1觸發器的被動性 472
15.6.2觸發器與激活的進程
之間不存在並發問題 472
15.6.3使用IFUPDATE()和
COLUMNS_
UPDATED() 473
15.6.4保持觸發器短小精悍 475
15.6.5選擇索引時不要忘記
觸發器 475
15.6.6不要在觸發器中
進行回滾 475
15.7刪除觸發器 476
15.8調試觸發器 476
15.9本章小結 477
第16章初識XML 479
16.1XML基礎 480
16.1.1XML文檔的各個
組成部分 481
16.1.2名稱空間 489
16.1.3元素內容 491
16.1.4有效與格式良好——
架構和DTD 492
16.2SQLServer提供的
XML支持 492
16.2.1將列定義為XML
類型 493
16.2.2XML架構集合 494
16.2.3創建、修改和刪除
XML架構集合 496
16.2.4XML數據類型方法 498
16.2.5強制執行架構集合
之外的約束 504
16.2.6用XML格式檢索
關係數據 505
16.2.7RAW選項 506
16.2.8AUTO選項 509
16.2.9EXPLICIT選項 510
16.2.10PATH選項 512
16.2.11OPENXML函式 517
16.3XSLT簡介 521
16.4本章小結 523
第17章商務智慧型基礎 525
17.1商務智慧型的概念 525
17.1.1BI優於其他方案 526
17.1.2根據數據做出決策 526
17.1.3不同的專家有不同的
觀點 528
17.1.4通過過去的業績預測
未來的行為 528
17.1.5誰使用BI 528
17.2數據倉庫 528
17.2.1數據倉庫的目標 529
17.2.2OLTP與OLAP 529
17.2.3Kimball與Inmon 530
17.3維度建模:為什麼是
規範化的 533
17.3.1度量值和度量指標 533
17.3.2事實 534
17.3.3維度 536
17.4ETL 542
17.4.1提供數據 542
17.4.2強制一致性 543
17.4.3通過定義數據來
解決衝突 544
17.4.42個、3個或
更多個階段 544
17.4.5在ETL過程中
處理並發 545
17.4.6快取提取的內容——
運算元據存儲(ODS) 546
17.5使數據可操作:
BI報表技術 546
17.5.1目標 547
17.5.3儀錶盤 549
17.5.4記分卡 549
17.5.5明細表 549
17.5.6下鑽 550
17.5.7鑽取 550
17.5.8臨時報表 551
17.6本章小結 551
第18章BI存儲和報表資源 553
18.1T-SQL中的BI 554
18.1.1AdventureWorks
數據倉庫 554
18.1.2使用T-SQL分析函式 555
18.1.3columnstore索引 563
18.2SQLServerAnalysis
Services 564
18.3建立第一個多維數據集 565
18.3.1數據源 571
18.3.2數據源視圖 572
18.3.3多維數據集 572
18.3.4度量值組 573
18.3.5維度 574
18.3.6多維數據集的
其他內容 576
18.4自助式BI:用戶工具 576
18.4.1報表構建器 577
18.4.2PowerPivot:帶有
SharePoint和Excel的
輕型BI 577
18.4.3PowerView 579
18.5小結 579
第19章ReportingServices 581
19.1ReportingServices101 581
19.2理解SSRS報表的
生命周期 582
19.2.1在SSRS中開發報表 582
19.2.2管理報表 583
19.2.3把報表發布給用戶 583
19.3理解ReportingServices
體系結構 583
19.3.1SSDT:報表設計器 584
19.3.2SSRSWindows服務 584
19.3.3報表管理器 584
19.3.4報表構建器 584
19.3.5報表查看器 584
19.4構建簡單的報表模型 585
19.4.1創建項目 585
19.4.2給數據模型
添加內容 593
19.4.3構建和部署
數據模型 598
19.4.4創建報表 599
19.5報表伺服器項目 607
19.5.1建立報表伺服器項目 607
19.5.2部署報表 612
19.6本章小結 613
第20章使用IntegrationServices
進行集成 615
20.1理解問題 615
20.2使用導入/導出嚮導生成
基本的程式包 616
20.2.1啟動嚮導 616
20.2.2選擇數據源 617
20.2.3完成嚮導 620
20.3程式包基礎知識 622
20.3.1“連線管理器”面板 623
20.3.2程式包編輯器面板 625
20.4執行程式包 632
20.4.1在DevelopmentStudio中
執行程式包 633
20.4.2在SSMS中執行 633
20.4.3使用執行包實用工具 635
20.4.4使用SQLServerAgent
執行程式包 638
20.4.5從程式中執行程式包 638
20.5關於程式包的補充說明 638
20.6本章小結 638
第21章扮演管理員的角色 641
21.1調度作業 642
21.1.1創建操作員 643
21.1.2創建作業和步驟 644
21.2登錄和用戶 651
21.2.1安全模式 652
21.2.2創建登錄和用戶 652
21.2.3許可和擁有權 654
21.3備份和恢復 654
21.3.1創建備份 655
21.3.2恢復模式 658
21.3.3還原 658
21.4索引維護 660
21.5數據歸檔 662
21.6基於策略的管理 663
21.7用POWERSHELL自動完成
管理任務 663
21.7.1PowerShell 663
21.7.2安裝和啟用
PowerShell 664
21.7.3cmdlet和模組 664
21.7.4Sqlps 664
21.7.5部署和執行 666
21.8本章小結 667
附錄A習題答案 669

相關詞條

熱門詞條

聯絡我們