Sql server PowerShell/SQL Server管理单元与#x27;s/工具?

Sql server PowerShell/SQL Server管理单元与#x27;s/工具?,sql-server,powershell,snap-in,Sql Server,Powershell,Snap In,我对PowerShell管理单元和其他与SQL Server交互的“工具”有点困惑。那么,这些工具之间的区别是什么: SMO SQLPS模块 SQLPSX SQL Server PowerShell提供程序 SMO或是一组.NET类,开发人员用来创建管理SQL Server的应用程序。在SQLServer2005中引入的SMO类在每个SQLServer版本中都进行了更新,以涵盖新的管理功能。SMO是用于构建SQLServerManagementStudio以及列表中其他工具的底层API SQL

我对PowerShell管理单元和其他与SQL Server交互的“工具”有点困惑。那么,这些工具之间的区别是什么:

  • SMO
  • SQLPS模块
  • SQLPSX
  • SQL Server PowerShell提供程序
SMO或是一组.NET类,开发人员用来创建管理SQL Server的应用程序。在SQLServer2005中引入的SMO类在每个SQLServer版本中都进行了更新,以涵盖新的管理功能。SMO是用于构建SQLServerManagementStudio以及列表中其他工具的底层API

SQLPS模块是SQL Server 2012中引入的Powershell模块。在2012版之前,SQL Server中的Powershell支持是由一个迷你shell提供的,即SQL 2008中引入的sqlps.exe,并在SQL Server 2008 R2中进行了一些小的增强。关于SQL迷你shell的完整讨论可以在这里找到。SQL Server 2012中仍然存在minishell sqlps.exe以及名为sqlps的模块。有关SQL 2012 Powershell实现的讨论可在此处找到: 注意:还可以围绕sqlps cmdlet和提供程序构建一个小包装器,为SQL 2012(2008和2008 R2)之前的版本创建您自己的模块。我在这里创建了一个包装器

SQLPSX是一个CodePlex项目,在SQL Server获得任何Powershell支持之前,我于2007年9月开始工作。第一次发布于2008年7月。SQLPSX项目主要是基于脚本的模块,这意味着您可以读取脚本源代码。SQLPSX项目仍然涵盖了SQLPS模块实现中未涉及的许多任务。我们试图避免sqlps和sqlpsx模块之间的功能重叠,尽管在2012版本中SSI和备份/恢复功能存在一些重叠。SQLPSX项目的详细描述可以在这里找到

SQL Server Powershell提供程序--首先让我们定义提供程序。提供程序允许用户与数据交互,如文件系统中的cd、dir、copy、remove等。注意:提供程序不实现所有功能,例如SQL提供程序(有少数例外)不包括copy、new、remove

Powershell附带多个提供程序,包括文件系统提供程序和注册表提供程序。您可以通过运行get-psprovider查看系统上安装的提供程序。SQL Server 2008及更高版本(尽管提供程序向后兼容)包含SQL Server提供程序。提供程序实现了一个SQL Server“驱动器”,您可以在其中将SQL Server实例和cd导航到数据库、表等中。该功能与您在SQL Server Management Studio中看到的功能非常相似。人们常问的一个问题是,在哪里可以浏览SQL Server表中的数据,答案是否定的。SQL Server提供程序用于管理SMO对象。您可以使用cmdlet invoke-sqlcmd运行查询,就像在旧的命令行版本sqlcmd中一样。SQL提供程序包括在sqlps迷你shell以及sqlps模块中