【问题标题】:How to navigate through the hierarchy of SQL Server 2012 LocalDB objects using the PowerShell SQLPS module?如何使用 PowerShell SQLPS 模块浏览 SQL Server 2012 LocalDB 对象的层次结构?
【发布时间】:2012-10-24 02:56:23
【问题描述】:

从程序开发人员的角度来看,将 PowerShell 与“Microsoft SQL Server 2012 LocalDB”结合起来与 SQL Server 数据库引擎进行交互是非常有吸引力的。从 PowerShell 连接到 LocalDB 实例、使用数据库对象和执行 Transact-SQL 语句都可以正常工作。在此组合中添加“Microsoft SQL Server 2012 共享管理对象”(SMO) 时也是如此。

我无法通过 PowerShell SQLPS 模块(“Microsoft Windows PowerShell Extensions for Microsoft SQL Server 2012 Feature Pack”)浏览 LocalDB 实例。后者尝试获取 SQL Server 服务信息,而 LocalDB 不创建任何数据库服务。

但是,是否有一种方法可以使 SQLPS 模块可以看到 LocalDB 实例?

【问题讨论】:

    标签: powershell localdb


    【解决方案1】:

    我认为没有任何方法可以扩展 SQLPS 和/或 SMO 以在 SQL Server 实例列表中包含 LocalDB 实例。目前 SQLPS 和 SMO 不了解 LocalDB 实例模型,就像(我认为)它以前不了解 SQL Server Express 的用户实例一样。此外,混合常规实例和 LocalDB 实例可能会让最终用户感到困惑。 LocalDB 实例是每个用户的,只有拥有它们的用户才能看到,因此不同的用户将在同一台机器上获得不同的列表。每台机器都安装常规 SQL Server 实例,所有用户都看到相同的列表。

    我敢打赌,您可以编写自己的 PowerShell 插件或模块。您需要做的就是从 LocaLDB API(可通过 C/C++ 获得)以及常规 SQL Server 实例的现有 SQLPS 或 SMO 调用 LocalDBGetInstancesLocalDBGetInstanceInfo 函数。不过,我不确定您是如何分发此类插件的。

    【讨论】:

    • … 或者编写一个 PowerShell 模块,这确实是我为了方便地在 LocalDB 实例中导航而做的,因此在很大程度上复制了 SQLPS 模块提供的功能。使用 SqlConnection 或 SMO 或两者的组合从 PowerShell 连接到 LocalDB 实例没有问题。我不知道的是如何让 SQLPS 模块不仅能看到本地机器的 SQL Server Express 实例,还能看到 LocalDB 实例。
    • 似乎我误解了你的问题,错过了 SQLPS 部分。我认为不可能以您想要的方式扩展它包装的 SQLPS 或 SMO。请记住,LocalDB 实例属于用户,并且仅对拥有它们的用户可见,因此我不确定在一般情况下将它们列在常规 SQL Server 实例中是否是一个好主意。根据调用者是谁,我们会看到不同的列表...
    猜你喜欢
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多