2015-04-06 111 views
0

我正在爲我的SCCM集合創建一個SQL查詢,但我得到一個錯誤。它並沒有告訴我錯誤是什麼,規則對我來說很合適。SCCM2012 SQL查詢有錯誤

Select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client, SMS_R_User.UniqueUserName 
FROM SMS_R_System 
JOIN SMS_UserMachineRelationship ON SMS_R_System.Name=SMS_UserMachineRelationship.MachineResourceName 
JOIN SMS_R_User ON SMS_UserMachineRelationship.UniqueUserName=SMS_R_User.UniqueUserName 
Where SMS_R_User.UniqueUserName in (select UniqueUserName from SMS_R_User where UserGroupName = "Domain\\GroupName") 
+0

您是否嘗試過在運行SSMS此查詢,看看它是否報告錯誤? –

+3

只是猜測,但也許'「域\\組名」應該是「域\\組名」?雙引號通常用作對象的引用標識符,而單引號表示字符串文字。 – jpw

+0

此外,請開始使用這種查詢的表別名,它真的提高了可讀性 – Lamak

回答

1

假設你沒有拼錯任何列名,我可以看到,會拋出一個錯誤是,也許"Domain\\GroupName"應該'Domain\\GroupName'的唯一的事情?雙引號通常用作對象的引用標識符,而單引號表示字符串文字。

隨着雙引號,你可能會得到這樣的錯誤:

消息207,級別16,狀態1,行?無效的列名稱 'Domain \ GroupName'。

此外,在where子句看起來不必要的子查詢,這個查詢應該是等價的(如果我沒有誤解的話):

SELECT 
    S.ResourceID, 
    S.ResourceType, 
    S.Name, 
    S.SMSUniqueIdentifier, 
    S.ResourceDomainORWorkgroup, 
    S.Client, 
    U.UniqueUserName 
FROM SMS_R_System S 
JOIN SMS_UserMachineRelationship UMR ON S.Name = UMR.MachineResourceName 
JOIN SMS_R_User U ON UMR.UniqueUserName = U.UniqueUserName 
WHERE U.UserGroupName = 'Domain\\GroupName' 
+0

因此,這會給我一個主要用戶屬於AD安全組「GroupName」的設備列表? –

+0

我會這麼認爲,但我不知道你的數據庫方案或應用程序,所以我不能肯定地說。試一試,看看你是否得到預期的結果。 – jpw

+0

我試過了,得到語法錯誤。不幸的是,SCCM12不會像SQL Server一樣告訴你錯誤的位置。 –