2016-06-07 69 views
-1

我有一個名爲PaymentReciept的表的數據庫我正在玩,並發現一些簡單的選擇所有查詢意外的結果。SQL查詢中的方括號意外的結果

// Return 3139 rows 
select * from PaymentReciept 

// Return 3139 rows 
select * from dbo.PaymentReciept 

// Return 0 rows 
select * from [dbo.PaymentReciept] 

我不明白爲什麼帶方括號的查詢沒有返回結果。我知道方括號用作使用某些特殊字符或關鍵字的標識符的分隔符。

有人可以向我解釋發生了什麼事情,或者直接給我一些文章或書籍,我可以更多地瞭解這種行爲。

+0

還應該指出的原因倒投票時反對投票的問題。 –

回答

7

[dbo.PaymentReciept]

意味着SQL被查詢表名稱爲dbo.PaymentReceipt

dbo.PaymentRecieptPaymentReciept表示SQL正在查詢模式dbo中名爲PaymentReceipt的表。

要正確使用方括號,使用方法:

[dbo].[PaymentReciept]

+0

感謝您的快速回復。但是,如果SQL查詢名爲'dbo.PaymentReceipt'的表,那麼爲什麼它沒有返回對象未找到錯誤,因爲沒有名爲'dbo.PaymentReceipt'的表。 –

+2

@SyedFarjadZiaZaidi也許它是創建..嘗試運行'SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE'%PaymentReceipts' – Akash

+0

是桌子在那裏,我現在刪除它。謝啦... –

3

方括號應放在周圍的模式名稱(dbo)和表名(PaymentReciept),因爲這兩個是分開對象:

select * from [dbo].[PaymentReciept]