2013-06-28 47 views
0

今天我發現了一個很奇怪的看着查詢在MS-Access數據庫之一:MS-Access中'沒有匹配'關鍵字的查詢語法?

SELECT Count([hrpersnl Without Matching T_Employees].EmpNo) AS [Count] 
FROM [hrpersnl Without Matching T_Employees]; 

Without Matching條款在我看來是相當MS-訪問,從ANSI-SQL不同,作爲一個整體特定的語法,在我看來,找到的記錄在兩個表的EmpNo字段中都沒有匹配,但T_Employees表沒有EmpNo字段,所以我可能在我對此的假設中錯誤。

它實際上做了什麼,它的文檔在哪裏?

+4

您是否查找過具有這些名稱的已保存查詢?在你的例子中,方括號內的所有內容都應該是表或查詢的名稱。 –

+0

是'hrpersnl'和'T_Employees'都是表格。 – leeand00

+2

對不起,我應該更精確。是否存在一個名爲'hrpersnl而不匹配T_Employees'的已保存查詢? –

回答

4

在這種

  • 包含空格和 「滑稽人物」 的Access查詢,表/查詢和字段名,或

  • 是訪問reserved words

必須用在[方括號]中。在這種情況下,[hrpersnl Without Matching T_Employees]是表格或查詢名稱,而不是涉及基表hrpersnlT-Employees的表達式。

+1

Upvote。出於很好的理由,在命名錶,查詢或其他Access數據庫對象時包含空格被認爲是不好的做法。它爲該計劃的運作造成了複雜性和危害。它不利於易讀性(在這種情況下)。最後,這是未來任何遷移到另一個DBMS的障礙。 – Smandoli

相關問題