2013-05-28 19 views
-2

我正在嘗試使用「Microsoft Query」執行一個非常簡單的SQL查詢。我可以連接到表,選擇我需要的列,但是當我嘗試執行時,我得到錯誤消息說「錯誤的語法靠近關鍵字是''SQL錯誤 - 關鍵字'IS'附近的語法不正確 - SQL中的數據庫名稱問題?

我通過自動查詢得到了下面的SQL語句,但它只是不' t執行成功。我想我知道問題是什麼。這是因爲我的數據庫目錄名稱是「IS」。我試着用不同的名字在其他數據庫上執行相同的查詢,並且工作正常。由於我有權訪問多個數據庫,因此需要指定我在腳本中訪問哪個數據庫,這是導致此問題的原因。在我可以避免使用數據庫名稱並可能聲明變量的情況下,是否有解決方法?

SELECT Table1.id, 
Table1.Name, 
Table1.Status, 
Table1.DateEntered 
FROM IS.dbo.Table1 Table1 

OR

SELECT * FROM IS.dbo.Table1 Table1 (Same error msg) 
+3

說就是括號'[IS] .dbo' –

+2

爲什麼當你顯然使用Microsoft SQL Server MySQL的標籤? –

+1

看看標記,它顯然是藍色的,就像其他系統字一樣。你的IDE也應該檢測到這一點。將來,只需使用括號。 – Kermit

回答

7

IS是一個SQL保留關鍵字,你有[]

SELECT * FROM [IS].dbo.Table1 Table1 (Same error msg) 
然而

把它包起來,是一個很好的做法 - 和錯誤避免技術 - 來命名不使用保留關鍵字的表格或始終在表格名稱周圍使用括號名稱

+0

只是始終使用括號甚至更好。 – Kermit

+0

@FreshPrinceOfSO:是的,你是對的 – DonCallisto

+0

工程就像一個魅力,感謝您的幫助:) – user2430036

3

我認爲IS是一個保留關鍵字。嘗試它包裹方括號:

SELECT Table1.id, Table1.Name, Table1.Status, Table1.DateEntered FROM [IS].dbo.Table1 Table1 
+0

這是SQL Server,而不是'mysql'。 – Kermit

+0

已更新的答案,誤讀並認爲它是mysql –

+0

工程就像一個魅力,感謝您的幫助:) – user2430036

相關問題