我有一个查询,它显示了服务器中的所有 SQL 服务器实例:
DECLARE @GetInstances TABLE
( Value nvarchar(100),
InstanceNames nvarchar(100),
Data nvarchar(100))
Insert into @GetInstances
EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
@value_name = 'InstalledInstances'
Select [ServerName] = @@servername,InstanceNames from @GetInstances
我还有一个查询,显示特定实例的内存设置和使用情况:
SELECT [instance] = @@servername, p.*
FROM (SELECT name, [value_in_use]
FROM sys.configurations) t
PIVOT (MAX([value_in_use]) FOR name IN ([min server memory (MB)],
[min memory per query (KB)],
[max server memory (MB)],
[optimize for ad hoc workloads])) p
有没有一种方法可以让我同时拥有这两方面的优势 - 通过一个查询获得所有 SQL 服务器实例的所有信息?
我想避免创建链接服务器。
我不介意使用 powershell 或任何其他工具,只要我不需要以管理员身份运行它。
您可以为此使用DbaTools 的优秀 Powershell 脚本库。
如果您有实例名称或其他连接字符串,您也可以直接使用SMO执行此操作。
我发现的一种方法是在注册的服务器中添加一个组,例如 SERVER_T007,然后在该组中添加两个实例 - 在我的情况下:
然后对已注册的组运行查询 - 下图中的 3。
结果是:
以防链接丢失,这是文章和作者的名称,很好参考,因为它有图片,我们喜欢这样。
还有其他方法如上所述(这里没有图片或示例)