从程序开发人员的角度来看,将PowerShell与“Microsoft SQL Server2012 LocalDB”相结合来与SQL Server数据库引擎进行交互是非常有吸引力的。从PowerShell连接到LocalDB实例、处理数据库对象和执行Transact-SQL语句都能正常工作。将“Microsoft SQL Server 2012共享管理对象”(SMO)添加到此组合中时也是如此。
我不能工作的是通过PowerShell SQLPS模块(“Microsoft Windows PowerShell Extensions for Microsoft SQL Server2012 Feature Pack”)浏览LocalDB实例。后者尝试获取SQL Server服务信息,而LocalDB不创建任何数据库服务。
然而,是否有一种方法可以使LocalDB实例对SQLPS模块可见?
发布于 2012-11-04 04:06:36
我不认为有任何方法可以扩展SQLPS和/或SMO以将LocalDB实例包括在SQL Server实例列表中。目前SQLPS和SMO不理解LocalDB实例模型,就像(我认为)它以前不理解SQL Server Express的用户实例一样。此外,混合使用常规实例和LocalDB实例可能会让最终用户感到困惑。LocalDB实例是按用户的,并且仅对拥有它们的用户可见,因此不同的用户将在同一台计算机上获得不同的列表。常规SQL Server实例是在每台计算机上安装的,并且所有用户都会看到相同的列表。
我敢打赌,您可以编写自己的PowerShell插件或模块。您所需要做的就是从SQLPS (可通过C/C++获得)中调用LocalDBGetInstances和LocalDBGetInstanceInfo函数,并为常规SQL Server实例调用现有的SQLPS或LocaLDB。不过,我不确定你是如何发布这样的插件的。
https://stackoverflow.com/questions/13212348
复制相似问题