我聽說從程序到程序的SQL大多相同,但是有一些差異。我想知道Access(2007年,如果它很重要)和MS SQL Server之間是否有任何差異?我想知道,因爲我經常使用Access並希望從書中學習SQL,並且我想知道使用MS SQL Server的書是否能滿足我的目的?我正在考慮「Access 2007 Pure SQL」和「Beginning SQL Joes 2 Pros」,其中第二個使用MS SQL Server。謝謝你的幫助!Access中的SQL和MS SQL Server中的SQL
回答
有很多不同之處,甚至是簡單的東西,比如字符串連接操作符。 Access使用&
,SQL Server使用+
。 SQL就像英文。有英國英語,加拿大英語,美國英語,澳大利亞英語等...多種方言,大多數但不完全兼容。
這並不是說事物完全不兼容 - 在任何DBMS上學習SQL都有用,因爲關係數據庫的核心概念保持不變,而不管您使用的是哪個DBMS。只是你如何與他們交流,這是不同的。
MS Access使用JET SQL,而SQL Server使用Transact SQL。大多數情況下,它們非常相似。通常SQL是一種編程語言,用於管理關係數據庫管理系統中的數據。所以所有的口味都有一個共同的子集。但也有分歧。欲瞭解更多信息,請參閱Convert Microsoft Access (JET SQL) to SQL Server (T-SQL) Cheatsheet上的這篇文章。網絡上還有許多其他資源,但這應該能讓您快速瞭解一些差異。
「MS Access使用JET SQL」 - Access207和Access2010不使用「JET SQL」,現在稱爲Access數據庫引擎SQL;) – onedaywhen 2012-01-09 09:07:12
它顯示我有一段時間沒有使用Access! :)感謝您的糾正! – 2012-01-09 18:30:35
我會說Access SQL和T-SQL(SQL Server)比相似之處有更多的區別。任何相似的外觀都是由於1)兩者都基於SQL-89標準(但T-SQL和標準都已大大推進,Access不是這樣),2)SQL Server團隊嘗試過但未能使Access2000( Jet 4.0)符合入門級SQL-92標準(事實上的「最低」標準)。
以UPDATE語句爲例。在其最簡單的形式中,即涉及文字或輸入參數(標量)值,兩者大致相同。但是,使用另一個表中的值更新一個表時,最新的T-SQL語法(2008)支持使用有用專有擴展的SQL-92標量子查詢語法,SQL-99和SQL:2003標準「MERGE
」語法,以及其舊的專有UODATE..FROM
語法(其中should be avoided nowadays因爲它允許可能含糊不清的結果),所有這些都可以選擇使用SQL:2003公用表表達式(用於簡化SQL-92標量子查詢語法)。
對於Access你不得不利用其專有的UPDATE..FROM
語法,這是不一樣的T-SQL專有UPDATE..FROM
語法,但已經讓潛在的不明確的結果同樣的問題(但不能迴避這個時候!),除非query involves aggregated values in which case you cannot use SQL at all(!!)並且必須求助於客戶端(非SQL)過程代碼(因爲Access不支持過程SQL代碼,與T-SQL的另一個巨大差異)。
- 1. SQL Server和MS Access 2016
- 2. MS Access鎖定SQL Server中的表?
- 3. SQL的MS Access -
- 4. 從MS Access移到SQL Server
- 5. MS Access升級到SQL Server
- 6. MS Access查詢到SQL Server
- 7. MS Access/SQL Server Len()Brain Teaser
- 8. SQL Server Express vs MS Access
- 9. Ms-access中的SQL查詢
- 10. MS Access中的SQL語法
- 11. MS Access Int和Sql Server Big INT
- 12. MS Access Date()函數和SQL Server查詢
- 13. 的MS Access/SQL Server的語法(我猜)
- 14. 的MS Access/SQL Server的傳遞查詢
- 15. SQL的MS Access 2013
- 16. 繼承MS SQL的SQL Server
- 17. 相同的SQL Server(MS SQL)
- 18. 查詢更新到SQL Server的MS Access
- 19. T-SQL到MS Access SQL
- 20. SQL到MS Access SQL查詢
- 21. DreamFactory和MS SQL Server
- 22. 優化SQL MS SQL Server中,表中
- 23. SQL Server導出到代碼中的Excel和MS Access
- 24. 的Postgres和MS SQL Server
- 25. 將MS Access從MS Access遷移到MS SQL Server
- 26. Sql注入MS Access
- 27. MS Access SQL語句
- 28. SQL變量 - MS Access
- 29. SQL Server表> MS Access本地副本?
- 30. MS-Access外部事務鎖SQL Server表
除了這個答案,去SQL書,並嘗試刪除像微軟一直試圖做多年的訪問。 – 2012-01-09 03:04:37
實際上,'+'在Access中也是一個字符串連接運算符,它只處理與&不同的空值。 – onedaywhen 2012-01-09 09:03:36