本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章,第2.1节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。
第2章 SQL Server和PowerShell基础任务
PowerShell V3——SQL Server 2012数据库自动化运维权威指南
2.1 介绍
本章介绍使用PowerShell完成一些基本的SQL Server任务的脚本和代码片段。我们将从简单任务开始,例如,列出SQL Server实例,创建对象,如表、索引、存储过程和函数,让你轻松以编程方式使用SQL Server。
你会发现一些使用PowerShell和SQL管理对象(SQL Management Object,SMO)的方法。SMO提供了很多SQL Server类,允许以编程方式操作,使一些数据库任务自动化。对于一些方法,我们也将会探究使用不同的本地PowerShell cmdlets来完成相同任务的不同方法。
虽然我们在探究如何使用PowerShell创建一些常用的数据库对象,但是我们会注意到,PowerShell并不总是完成任务的最好工具。有些任务最好使用T-SQL来完成。即便如此,了解使用PowerShell可以做什么和如何做仍然是好的,因此,你知道依赖于你的需求和环境的替代方案。
2.1.1 开发环境
这些方案使用的开发环境的配置如下:
2.1.2 管理员
为简化练习,在你的环境中以管理员帐号运行PowerShell脚本。此外,确保该帐号在你工作的服务器上有完全访问SQL Server实例的权限。
2.1.3 PowerShell ISE
我们将在此任务中的所有脚本使用PowerShell ISE。你需要记住一些事情。
脚本窗格(Script Pane)是输入PowerShell代码的地方。输出窗格(Output Pane)是看到结果的地方。
命令窗格(Command Pane)输入即时查询命令的地方,只要你按Enter键立即执行。
在我们的方案中,我们将使用脚本窗格(Script Pane)来书写和执行脚本。根据任务,你可能需要做以下操作之一:
单击“运行脚本”(Run Script)按钮(绿色箭头),运行脚本的所有代码。
单击它旁边的“运行选择的脚本”(Run Selection)按钮,只运行高亮显示的代码。
2.1.4 运行脚本
如果你更喜欢使用PowerShell控制台运行脚本而不是使用ISE,你可以按照如下步骤操作。
1.以扩展名.ps1保存文件。
2.通过“Start | Accessories | Windows PowerShell | Windows PowerShell”打开PowerShell控制台。
3.我们可能希望运行本地创建的脚本。为了这样做,我们需要将“执行策略”(ExecutionPolicy)设置为RemoteSigned。
4.设置执行策略为RemoteSigned。
5.你可以从如下选项中挑选。
修改路径到脚本存储位置并调用脚本。
PS C:\>.\SampleScript.ps1 param1 param2
使用完整识别路径去运行.ps1文件。
PS C:\>#if your path has no space
PS C:\>C:\MyScripts\SampleScript.ps1 param1 param2
PS C:\>#if your path has space
PS C:\>&" C:\My Scripts\SampleScript.ps1" param1 param2
如果你想在整个会话中在脚本中保留函数和变量,你可以使用点号加载文件。
PS C:\>. .\SampleScript.ps1 param1 param2
PS C:\>." C:\My Scripts\SampleScript.ps1" param1 param2