我的服务器和开发电脑都安装了 Powershell。在我的开发机器上,显然安装了最新版本的 PowerShell 或其某些 SQL Server 'sqlps' 组件。我目前的问题是我无法像在开发机器中那样列出数据库,如下所示:
PS SQLSERVER:\> ls SQLSERVER:\\SQL\server\instance\Databases\
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
Get-ChildItem : No se encuentra la ruta de acceso 'SQLSERVER:\SQL\serverr2\serverr2\Databases' porque no existe.
En línea: 1 Carácter: 4
+ dir <<<< SQLSERVER:\SQL\server\instance\Databases
+ CategoryInfo : ObjectNotFound: (SQLSERVER:\SQL\server\instance\Databases:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Run Code Online (Sandbox Code Playgroud)
显然,我无法获得诸如存储过程、视图等之类的子项。
但是,我可以列出已安装的实例,并且还可以通过列出带有以下内容的数据库来解决此问题:
DIR SQLSERVER:\\SQL\serverr2 | SELECT Databases -ExpandProperty Databases | SELECT Name,Owner,Urn
Run Code Online (Sandbox Code Playgroud)
但仍然需要获取另一个对象,如存储过程、视图、函数等。
这是 Get-Host cmdlet 提供的信息
Name : ConsoleHost
Version : 2.0
InstanceId : c1976472-19c0-439e-a4f6-debe59a18616
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : es-MX
CurrentUICulture : …
Run Code Online (Sandbox Code Playgroud)