第1 章 开始使用SQL Server 和Powershell.1
1.1 简介.1
值得注意的PowerShell V3 属性.1
1.2 在你开始之前:使用SQL Server 和Powershell 工作3
1.3 使用示例代码工作4
1.3.1 如何做… .4
1.3.2 请参阅.5
1.4 浏览SQL Server Powershell 层次结构.5
1.4.1 准备.5
1.4.2 如何做… .6
1.4.3 如何实现… .8
1.5 安装SMO 9
1.5.1 准备.9
1.5.2 如何做… .9
1.5.3 更多… .10
1.6 导入SMO 程序集.10
1.6.1 准备. 11
1.6.2 如何做… . 11
1.6.3 如何实现… . 11
1.6.4 更多… .12
1.6.5 可参阅.12
1.7 发现SQL 相关的cmdlets 和模块12
1.7.1 准备.12
1.7.2 如何做… .121.7.3 如何实现… .13
1.7.4 更多… .14
1.8 创建SQL Server 实例对象.18
1.8.1 准备.18
1.8.2 如何做… .18
1.8.3 如何实现… .19
1.8.4 更多… .20
1.9 浏览SMO 服务器对象.20
1.9.1 准备.20
1.9.2 如何做… .21
1.9.3 如何实现… .21
1.9.4 更多… .21
第2 章 SQL Server 和Powershell 基础任务.22
2.1 介绍22
2.1.1 开发环境.22
2.1.2 管理员.23
2.1.3 PowerShell ISE 23
2.1.4 运行脚本.23
2.2 列出SQL Server 实例.24
2.2.1 准备.24
2.2.2 如何做… .24
2.2.3 如何实现… .25
2.2.4 更多… .26
2.3 发现SQL Server 服务.27
2.3.1 准备.27
2.3.2 如何做… .27
2.3.3 如何实现… .28
2.3.4 更多… .28
2.3.5 更多… .29
2.4 启动/停止SQL Server 服务29
2.4.1 准备.29
2.4.2 如何做… .29
2.4.3 如何实现… .30
2.4.4 更多… .33目录 III
2.4.5 更多… .33
2.5 列出SQL Server 配置设置.33
2.5.1 如何做… .34
2.5.2 如何实现… .35
2.5.3 更多… .36
2.6 修改SQL Server 实例配置.36
2.6.1 准备.36
2.6.2 如何做… .36
2.6.3 如何实现… .39
2.6.4 更多… .39
2.6.5 请参阅… .39
2.7 查找数据库对象40
2.7.1 准备.40
2.7.2 如何做… .40
2.7.3 如何实现… .41
2.7.4 更多… .44
2.7.5 可参阅… .44
2.8 创建数据库44
2.8.1 准备.44
2.8.2 如何做… .44
2.8.3 如何实现… .45
2.9 修改数据库属性45
2.9.1 准备.45
2.9.2 如何做… .46
2.9.3 如何实现… .47
2.9.4 可参阅… .48
2.10 删除数据库48
2.10.1 准备.48
2.10.2 如何做… .48
2.10.3 如何实现… .49
2.11 修改数据库所有者49
2.11.1 准备.50
2.11.2 如何做… .50
2.11.3 如何实现… .51
2.11.4 可参阅… .51IV 目录
2.12 创建表51
2.12.1 准备.51
2.12.2 如何做… .51
2.12.3 如何实现… .54
2.12.4 可参阅… .55
2.13 创建视图55
2.13.1 准备.56
2.13.2 如何做… .56
2.13.3 如何实现… .57
2.13.4 更多… .58
2.14 创建存储过程58
2.14.1 准备.58
2.14.2 如何做… .59
2.14.3 如何实现… .60
2.15 创建触发器61
2.15.1 准备.62
2.15.2 如何做… .62
2.15.3 如何实现… .64
2.16 创建索引65
2.16.1 准备.65
2.16.2 如何做… .65
2.16.3 如何实现… .67
2.16.4 更多… .68
2.16.5 请参阅… .68
2.17 执行查询语句/SQL 脚本.68
2.17.1 准备.68
2.17.2 如何做… .68
2.17.3 如何实现… .69
2.18 使用Invoke-Sqlcmd 实施批量导出69
2.18.1 准备.70
2.18.2 如何做… .70
2.18.3 如何实现… .70
2.18.4 请参阅… .71
2.19 使用bcp 实施批量导出71
2.19.1 准备.712.19.2 如何做… .71
2.19.3 如何实现… .72
2.19.4 请参阅… .73
2.20 使用BULK INSERT 实施批量导入.73
2.20.1 准备.73
2.20.2 如何做… .74
2.20.3 如何实现… .75
2.20.4 请参阅… .77
2.21 使用bcp 实施批量导入77
2.21.1 准备.77
2.21.2 如何做… .77
2.21.3 如何实现… .79
2.21.4 请参阅… .79
第3 章 基本管理80
3.1 介绍80
3.2 创建SQL Server 实例清单.80
3.2.1 如何做… .80
3.2.2 如何实现… .81
3.2.3 更多… .83
3.2.4 请参阅… .84
3.3 创建SQL Server 数据库清单.84
3.3.1 准备.84
3.3.2 如何做… .84
3.3.3 如何实现… .85
3.3.4 请参阅… .86
3.4 列出安装的热补丁和服务包86
3.4.1 如何做… .86
3.4.2 如何实现… .87
3.4.3 更多… .88
3.4.4 请参阅… .89
3.5 列出运行/阻塞的进程.89
3.5.1 准备.89
3.5.2 如何做… .89
3.5.3 如何实现… .903.5.4 请参阅… .91
3.6 杀掉阻塞进程91
3.6.1 准备.91
3.6.2 如何做… .92
3.6.3 如何实现… .92
3.6.4 更多… .93
3.6.5 请参阅… .93
3.7 检查磁盘空间使用93
3.7.1 如何做… .93
3.7.2 如何实现… .94
3.7.3 请参阅… .95
3.8 配置WMI 服务器事件警告96
3.8.1 准备.96
3.8.2 如何做… .97
3.8.3 如何实现… .98
3.8.4 更多… . 100
3.9 分离数据库101
3.9.1 准备.101
3.9.2 如何做… .101
3.9.3 如何实现… .102
3.9.4 更多… .102
3.9.5 请参阅… .102
3.10 附加数据库102
3.10.1 准备.102
3.10.2 如何做… .103
3.10.3 如何实现… .104
3.10.4 请参阅… .106
3.11 复制数据库106
3.11.1 准备.106
3.11.2 如何做… .106
3.11.3 如何实现… .107
3.11.4 请参阅… .108
3.12 在多台服务器上执行查询108
3.12.1 准备.108
3.12.2 如何做… .1083.12.3 如何实现… .109
3.12.4 请参阅… .109
3.13 创建文件组109
3.13.1 准备.109
3.13.2 如何做… .110
3.13.3 如何实现… .110
3.13.4 请参阅… . 111
3.14 将辅助数据文件添加到文件组111
3.14.1 准备. 111
3.14.2 如何做… . 111
3.14.3 如何实现… .112
3.14.4 请参阅… .112
3.15 将索引移动到不同的文件组113
3.15.1 准备.113
3.15.2 如何做… .113
3.15.3 如何实现… .114
3.15.4 更多… .115
3.15.5 请参阅… .115
3.16 检查索引锁片116
3.16.1 准备.116
3.16.2 如何做… .116
3.16.3 如何实现… .117
3.16.4 请参阅… .117
3.17 重新组织/重建索引.118
3.17.1 准备.118
3.17.2 如何做… .118
3.17.3 如何实现… .119
3.17.4 请参阅… .120
3.18 运行DBCC 命令.120
3.18.1 如何做… .120
3.18.2 如何实现… .120
3.19 配置数据库邮件121
3.19.1 准备.121
3.19.2 如何做… .121
3.19.3 如何实现… .1263.19.4 更多… .128
3.20 列出SQL Server 作业.128
3.20.1 准备.128
3.20.2 如何做… .128
3.20.3 如何实现… .128
3.20.4 请参阅… .130
3.21 添加SQL Server 操作员.130
3.21.1 准备.130
3.21.2 如何做… .130
3.21.3 如何实现… .131
3.21.4 请参阅… .132
3.22 创建SQL Server 作业.132
3.22.1 准备.132
3.22.2 如何做… .132
3.22.3 如何实现… .133
3.22.4 请参阅… .135
3.23 添加SQL Server 事件告警.135
3.23.1 如何做… .135
3.23.2 如何实现… .136
3.23.3 更多… .137
3.23.4 请参阅… .137
3.24 运行SQL Server 作业.137
3.24.1 准备.138
3.24.2 如何做… .138
3.24.3 如何实现… .138
3.24.4 请参阅… .139
3.25 调度SQL Server 作业.139
3.25.1 准备.139
3.25.2 如何做… .139
3.25.3 如何实现… .141
3.25.4 更多… .142
3.25.5 请参阅… .145
第4 章 安全.146
4.1 介绍1464.2 列出SQL Server 服务帐号.146
4.2.1 如何做… .146
4.2.2 如何实现… .147
4.2.3 请参阅… .148
4.3 修改SQL Server 服务帐号.148
4.3.1 准备.148
4.3.2 如何做… .148
4.3.3 如何实现… .149
4.3.4 请参阅… .151
4.4 列出验证模式151
4.4.1 准备.151
4.4.2 如何做… .151
4.4.3 如何实现… .152
4.4.4 请参阅… .152
4.5 修改验证模式152
4.5.1 准备.152
4.5.2 如何做… .153
4.5.3 如何实现… .153
4.5.4 更多… .154
4.5.5 请参阅… .155
4.6 列出SQL Server 日志中的错误信息.155
4.6.1 准备.155
4.6.2 如何做… .155
4.6.3 如何实现… .158
4.6.4 请参阅… .158
4.7 列出登录失败的尝试信息159
4.7.1 如何做… .159
4.7.2 如何实现… .159
4.7.3 请参阅… .160
4.8 列出登录、用户和数据库匹配160
4.8.1 准备.160
4.8.2 如何做… .160
4.8.3 如何实现… .161
4.8.4 更多… .162
4.8.5 请参阅… .1624.9 列出登录/用户角色和许可.162
4.9.1 如何做… .163
4.9.2 如何实现… .164
4.9.3 请参阅… .164
4.10 创建登录164
4.10.1 准备.164
4.10.2 如何做… .165
4.10.3 如何实现… .165
4.10.4 请参阅… .166
4.11 给登录分配许可和角色166
4.11.1 准备166
4.11.2 如何做… .166
4.11.3 如何实现… .167
4.11.4 请参阅… .168
4.12 创建数据库用户168
4.12.1 准备.169
4.12.2 如何做… .169
4.12.3 如何实现… .170
4.12.4 请参阅… .171
4.13 给数据库用户分配许可权限171
4.13.1 准备.171
4.13.2 如何做… .171
4.13.3 如何实现… .172
4.13.4 请参阅… .173
4.14 创建数据库角色173
4.14.1 准备.173
4.14.2 如何做… .174
4.14.3 如何实现… .175
4.14.4 请参阅… .176
4.15 修复孤立用户176
4.15.1 准备.177
4.15.2 如何做… .177
4.15.3 如何实现… .178
4.15.4 更多… .179
4.15.5 请参阅.1794.16 创建凭据179
4.16.1 准备.179
4.16.2 如何做… .180
4.16.3 如何实现… .180
4.16.4 请参阅… .181
4.17 创建代理181
4.17.1 准备.181
4.17.2 如何做… .182
4.17.3 如何实现… .183
4.17.4 更多… .184
4.17.5 请参阅… .184
第5 章 高级管理185
5.1 介绍185
5.2 列出方面和方面属性185
5.2.1 如何做… .185
5.2.2 如何实现… .186
5.2.3 请参阅… .187
5.3 列出策略187
5.3.1 准备.187
5.3.2 如何做… .188
5.3.3 如何实现… .188
5.3.4 请参阅… .189
5.4 导出策略189
5.4.1 准备.189
5.4.2 如何做… .191
5.4.3 如何实现… .191
5.4.4 更多… .192
5.4.5 请参阅… .192
5.5 导入策略192
5.5.1 准备.192
5.5.2 如何做… .193
5.5.3 如何实现… .193
5.5.4 更多… .194
5.5.5 请参阅.194XII 目录
5.6 创建条件195
5.6.1 准备.195
5.6.2 如何做… .195
5.6.3 如何实现… .197
5.6.4 请参阅… .198
5.7 创建策略198
5.7.1 准备.198
5.7.2 如何做… .198
5.7.3 如何实现… .200
5.7.4 请参阅… .201
5.8 评估策略201
5.8.1 准备.201
5.8.2 如何做… .201
5.8.3 如何实现… .202
5.8.4 更多… .203
5.8.5 请参阅… .203
5.9 启用/禁用更改跟踪.203
5.9.1 准备.203
5.9.2 如何做… .204
5.9.3 如何实现… .204
5.9.4 更多… .204
5.9.5 请参阅… .205
5.10 运行并保存Profiler 跟踪事件205
5.10.1 准备.205
5.10.2 如何做… .205
5.10.3 如何实现… .208
5.10.4 请参阅… .210
5.11 提取跟踪文件的内容211
5.11.1 准备211
5.11.2 如何做…211
5.11.3 如何实现…213
5.11.4 请参阅…215
5.12 创建数据库主密钥215
5.12.1 准备.215
5.12.2 如何做… .2155.12.3 如何实现… .216
5.12.4 请参阅… .216
5.13 创建证书217
5.13.1 准备.217
5.13.2 如何做… .217
5.13.3 如何实现… .218
5.13.4 更多… .219
5.13.5 请参阅… .219
5.14 创建对称和非对称密钥219
5.14.1 准备.219
5.14.2 如何做… .219
5.14.3 如何实现… .222
5.14.4 更多… .223
5.14.5 请参阅… .224
5.15 配置透明数据加密(TDE) 224
5.15.1 准备.224
5.15.2 如何做… .224
5.15.3 如何实现… .226
5.15.4 更多… .228
5.15.5 请参阅… .228
第6 章 备份和恢复229
6.1 介绍229
6.2 修改数据库恢复模式229
6.2.1 准备.229
6.2.2 如何做… .230
6.2.3 如何实现… .231
6.2.4 更多… .231
6.2.5 请参阅… .232
6.3 列出备份历史232
6.3.1 如何做… .232
6.3.2 如何实现… .232
6.3.3 请参阅… .233
6.4 创建备份设备233
6.4.1 准备.2336.4.2 如何做… .233
6.4.3 如何实现… .234
6.4.4 请参阅… .235
6.5 列出备份头部和文件列表信息235
6.5.1 准备.235
6.5.2 如何做… .235
6.5.3 如何实现… .237
6.5.4 请参阅… .238
6.6 创建完整备份238
6.6.1 准备.238
6.6.2 如何做… .238
6.6.3 如何实现… .239
6.6.4 更多… .241
6.6.5 请参阅… .243
6.7 创建一个镜像媒体集合的备份243
6.7.1 准备.243
6.7.2 如何做… .243
6.7.3 如何实现… .244
6.7.4 请参阅… .246
6.8 创建差异备份246
6.8.1 准备.246
6.8.2 如何做… .246
6.8.3 如何实现… .247
6.8.4 更多… .248
6.8.5 请参阅… .248
6.9 创建事务日志备份248
6.9.1 准备.248
6.9.2 如何做… .248
6.9.3 如何实现… .249
6.9.4 更多… .250
6.9.5 请参阅… .250
6.10 创建文件组备份250
6.10.1 准备.250
6.10.2 如何做… .251
6.10.3 如何实现… .2516.10.4 请参阅… .252
6.11 将数据库恢复到一个时间点252
6.11.1 准备252
6.11.2 如何做…254
6.11.3 如何实现…256
6.11.4 请参阅…261
6.12 实施在线逐步恢复261
6.12.1 准备.262
6.12.2 如何做… .262
6.12.3 如何实现… .265
6.12.4 请参阅… .267
第7 章 SQL Server 开发268
7.1 介绍268
7.2 插入XML 到SQL Server .268
7.2.1 准备.268
7.2.2 如何做… .269
7.2.3 如何实现… .270
7.2.4 请参阅… .271
7.3 从SQL Server 抽取XML .271
7.3.1 准备.271
7.3.2 如何做… .271
7.3.3 如何实现… .272
7.3.4 请参阅… .273
7.4 从SQL Server 内容创建RSS 种子273
7.4.1 准备.273
7.4.2 如何做… .274
7.4.3 如何实现… .276
7.4.4 更多… .278
7.4.5 请参阅… .278
7.5 将XSL 应用到RSS 种子278
7.5.1 准备.278
7.5.2 如何做… .279
7.5.3 如何实现… .279
7.5.4 请参阅… .2817.6 将二进制数据存储到SQL Server 281
7.6.1 准备.281
7.6.2 如何做… .282
7.6.3 如何实现… .283
7.6.4 更多… .284
7.6.5 请参阅… .284
7.7 从SQL Server 抽取二进制数据.284
7.7.1 准备.284
7.7.2 如何做… .284
7.7.3 如何实现… .286
7.7.4 更多… .288
7.7.5 请参阅… .288
7.8 创建新的程序集288
7.8.1 准备.288
7.8.2 如何做… .288
7.8.3 如何实现… .289
7.8.4 更多… .290
7.8.5 请参阅… .291
7.9 列出用户定义的程序集291
7.9.1 准备.291
7.9.2 如何做… .291
7.9.3 如何实现… .292
7.9.4 更多… .292
7.9.5 请参阅… .292
7.10 抽取用户定义的程序集292
7.10.1 准备.293
7.10.2 如何做… .293
7.10.3 如何实现… .295
7.10.4 请参阅… .297
第8 章 商业智能298
8.1 介绍298
8.2 列出SSRS 报表服务器上的条目.298
8.2.1 准备.298
8.2.2 如何做… .2988.2.3 如何实现… .299
8.2.4 请参阅… .300
8.3 列出SSRS 报表属性.300
8.3.1 准备.300
8.3.2 如何做… .300
8.3.3 如何实现… .301
8.3.4 请参阅… .302
8.4 使用ReportViewer 查看SSRS 报表.302
8.4.1 准备.302
8.4.2 如何做… .303
8.4.3 如何实现… .304
8.4.4 请参阅… .306
8.5 下载SSRS 报表到Excel 和PDF .306
8.5.1 准备.306
8.5.2 如何做… .306
8.5.3 如何实现… .307
8.5.4 请参阅… .309
8.6 SSRS 目录309
8.6.1 准备.309
8.6.2 如何做… .310
8.6.3 如何实现… .311
8.6.4 请参阅… .313
8.7 创建SSRS 数据源.313
8.7.1 准备.313
8.7.2 如何做… .314
8.7.3 如何实现… .315
8.7.4 请参阅… .316
8.8 修改SSRS 报表的数据源参照.316
8.8.1 准备.316
8.8.2 如何做… .317
8.8.3 如何实现… .318
8.8.4 请参阅… .319
8.9 将SSRS 报表上传到报表管理器.319
8.9.1 准备.319
8.9.2 如何做… .3208.9.3 如何实现… .321
8.9.4 请参阅… .322
8.10 下载所有SSRS 报表RDL 文件.322
8.10.1 准备.322
8.10.2 如何做… .323
8.10.3 如何实现… .324
8.10.4 请参阅… .326
8.11 将带有角色的用户添加到SSRS 报表.326
8.11.1 准备.326
8.11.2 如何做… .326
8.11.3 如何实现… .328
8.11.4 请参阅… .329
8.12 在SSIS 包存储和MSDB 创建目录.330
8.12.1 准备.330
8.12.2 如何做… .330
8.12.3 如何实现… .331
8.12.4 请参阅… .332
8.13 将SSIS 包部署到包存储332
8.13.1 准备.332
8.13.2 如何做… .332
8.13.3 如何实现… .333
8.13.4 请参阅… .334
8.14 执行存储在包存储或文件系统中的SSIS 包334
8.14.1 准备.334
8.14.2 如何做… .334
8.14.3 如何实现… .335
8.14.4 更多… .335
8.14.5 请参阅… .336
8.15 将SSIS 包下载到文件336
8.15.1 准备.336
8.15.2 如何做… .336
8.15.3 如何实现… .337
8.15.4 请参阅… .338
8.16 创建SSISDB 目录.338
8.16.1 准备.3388.16.2 如何做… .338
8.16.3 如何实现… .339
8.16.4 请参阅… .341
8.17 创建SSISDB 文件夹.341
8.17.1 准备.341
8.17.2 如何做… .341
8.17.3 如何实现… .342
8.17.4 请参阅… .343
8.18 部署ISPAC 文件到SSISDB.343
8.18.1 准备.343
8.18.2 如何做… .343
8.18.3 如何实现… .344
8.18.4 请参阅… .345
8.19 执行存储在SSISDB 中的SSIS 包.345
8.19.1 准备.346
8.19.2 如何做… .346
8.19.3 如何实现… .347
8.19.4 请参阅… .348
8.20 列出SSAS cmdlets 348
8.20.1 如何做… .348
8.20.2 如何实现… .349
8.20.3 请参阅… .349
8.21 列出SSAS 实例属性.349
8.21.1 如何做… .349
8.21.2 如何实现… .350
8.21.3 请参阅… .350
8.22 备份SSAS 数据库.351
8.22.1 准备.351
8.22.2 如何做… .351
8.22.3 如何实现… .351
8.22.4 请参阅… .352
8.23 恢复SSAS 数据库.352
8.23.1 准备.352
8.23.2 如何做… .352
8.23.3 如何实现… .3528.23.4 请参阅… .352
8.24 执行SSAS cube .353
8.24.1 准备.353
8.24.2 如何做… .353
8.24.3 如何实现… .354
8.24.4 请参阅… .354
第9 章 有用的Powershell 片段355
9.1 介绍355
9.2 为Get-Help 文档化PowerShell 脚本.355
9.2.1 如何做… .355
9.2.2 如何实现… .357
9.2.2 更多… .357
9.3 获取时间戳358
9.3.1 如何做… .358
9.3.2 如何实现… .358
9.3.3 更多… .359
9.4 获取额外错误信息359
9.4.1 如何做… .359
9.4.2 如何实现… .360
9.5 列出进程361
9.5.1 如何做… .361
9.5.2 如何实现… .361
9.5.3 更多… .363
9.5.4 请参阅… .363
9.6 获取别名363
9.6.1 如何做… .363
9.6.2 如何实现… .363
9.6.3 更多… .364
9.7 导出到CSV 和XML 364
9.7.1 如何做… .364
9.7.2 如何实现… .365
9.7.3 更多… .365
9.8 使用Invoke-Expression.365
9.8.1 准备.3659.8.2 如何做… .365
9.8.3 如何实现… .366
9.8.4 更多… .366
9.9 测试正则表达式367
9.9.1 如何做… .367
9.9.2 如何实现… .368
9.9.3 更多… .370
9.10 管理文件夹370
9.10.1 如何做… .370
9.10.2 如何实现… .371
9.10.3 更多… .371
9.10.4 请参阅… .372
9.11 管理文件372
9.11.1 如何做… .372
9.11.2 如何实现… .373
9.11.3 更多… .373
9.11.4 请参阅… .374
9.12 搜索文件374
9.12.1 如何做… .374
9.12.2 如何实现… .375
9.12.3 更多… .376
9.12.4 请参阅… .376
9.13 读取事件日志376
9.13.1 如何做… .376
9.13.2 如何实现… .377
9.13.3 更多… .377
9.14 发送电子邮件377
9.14.1 准备.377
9.14.2 如何做… .378
9.14.3 如何实现… .378
9.14.4 更多… .378
9.15 嵌入C#代码379
9.15.1 如何做… .379
9.15.2 如何实现… .380
9.15.3 更多… .3809.16 创建HTML 报表.381
9.16.1 如何做… .381
9.16.2 如何实现… .382
9.16.3 更多… .382
9.17 解析XML 382
9.17.1 准备.382
9.17.2 如何做… .383
9.17.3 如何实现… .383
9.18 从web 服务抽取数据384
9.18.1 如何做… .384
9.18.2 如何实现… .384
9.18.3 更多… .386
9.19 使用PowerShell 远程386
9.19.1 准备.386
9.19.2 如何做… .387
9.19.3 如何实现… .387
9.19.4 更多… .388
附录A SQL Server 和Powershell 快捷键.390
附录B Powershell 入门.406
附录C 资源.430
附录D 创建SQL Server VM .435
展开