当前位置:Gxlcms > 数据库问题 > 第八篇 SQL Server代理使用外部程序

第八篇 SQL Server代理使用外部程序

时间:2021-07-01 10:21:17 帮助过:38人阅读

= new-object( ‘Microsoft.SqlServer.Management.Smo.Server‘ ) “(local)” foreach ($database in $server.databases) { $dbName = $database.Name Write-Output "Database: $dbName" }

技术分享
图8.3 PowerShell子系统作业
这个脚本将登录到你本地SQL Server(如果使用命名实例更改实例名称),然后通过循环得到各数据库的名称。你可以想象备份数据库,或检查其属性。要注意的另一件事是你必须登录并创建数据库连接。点击确定,再确定。调整步骤s1的工作流,让步骤s2正确运行。运行作业,并查看输出结果。你会看到服务器上的数据库列表已输出。
什么是PowerShell子系统真正有趣的,你可以从操作系统、或Active Directory查询信息,然后运行任何你的服务器支持的脚本。你要查询SQL Server监听端口?你可以使用WMI通过PowerShell。你想从注册表获取一些信息?在网上有很多PowerShell脚本(包括许多文章在SQLServerCentral)。
ActiveX脚本子系统
ActiveX脚本子系统允许你运行ActiveX脚本,可以使用VBScript或JScript在操作系统来完成任务。为了完整性,该子系统包含在,但是不建议在SQL Server代理使用ActiveX脚本。该子系统是过时的,这意味着它将在未来版本的数据库上删除。
选择哪个子系统?
如果你有一个现有的作业使用这些子系统,你应该继续保持除非你有一个令人信服的理由去改变它。然而,如果你创建一个新的作业或作业步骤,PowerShell子系统提供了最令人信服的能力。此外,微软显然已经转移到PowerShell方向作为所有微软服务器产品的标准脚本语言。值得你投资时间去学习PowerShell。
下一篇
SQL Server代理的CmdExec、PowerShell、ActiveX子系统允许你的数据库执行许多任务,包括运行批处理文件或外部程序。此外,使用PowerShell可以访问和控制几乎任何微软产品。新作业/作业步骤推荐使用PowerShell子系统。
在下一篇,我们将开始关注SQL Server代理安全。直到现在,这个系列已经假定你是sysadmin服务器角色的成员。下一步将在SQL Server代理中使用非系统管理员,同时学习更多的作业安全上下文。

第八篇 SQL Server代理使用外部程序

标签:

人气教程排行