尝试对一组网络服务器执行查询,但出现奇怪的语法错误。顶部查询将成功运行,但一旦添加添加/删除程序,就会出现“无法绑定多部分标识符“SYS.ResourceID””。最后,我希望能够查询一组计算机并查看每台计算机的添加/删除程序列表。
用于提取服务器类型、服务包等的工作代码:
选择不同的 SYS.Name、OPSYS.Caption0、OPSYS.CSDVersion0、OPSYS.InstallDate0、OPSYS.LastBootUpTime0 来自 v_FullCollectionMembership 系统 加入 v_GS_OPERATING_SYSTEM OPSYS 于 SYS.ResourceID=OPSYS.ResourceID 其中 SYS.CollectionID = @CollID 按系统名称、操作系统标题 0 排序
不工作:
选择不同的 SYS.Name、OPSYS.Caption0、OPSYS.CSDVersion0、OPSYS.InstallDate0、OPSYS.LastBootUpTime0、ARP.DisplayName0、ARP.Version0 来自 v_FullCollectionMembership SYS,v_Add_Remove_Programs ARP 加入 v_GS_OPERATING_SYSTEM OPSYS 于 SYS.ResourceID=OPSYS.ResourceID 其中 SYS.CollectionID = @CollID 按系统名称、操作系统标题 0 排序
答案1
SMS 2003,嗯?
我看不出您要在何处与 v_Add_Remove_Programs (as ARP) 表进行连接。您必须在连接中为其命名。
完全即兴,这应该可行(但可能不会......微笑 我没有这个模式可以供查询):
SELECT DISTINCT SYS.Name, OPSYS.Caption0, OPSYS.CSDVersion0, OPSYS.InstallDate0,OPSYS.LastBootUpTime0, ARP.DisplayName0, ARP.Version0
FROM v_FullCollectionMembership SYS
INNER JOIN v_GS_OPERATING_SYSTEM OPSYS on SYS.ResourceID = OPSYS.ResourceID
INNER JOIN v_Add_Remove_Programs ARP on SYS.ResourceID = ARP.ResourceID
WHERE SYS.CollectionID = @CollID
ORDER BY SYS.Name,OPSYS.Caption0