SQL查询中带方括号的意外结果

Sye*_*idi -1 sql sql-server-2014

我有一个数据库,其中有一个名为PaymentRecieptI 的表正在玩,并且从一个简单的select all查询中发现了一些意想不到的结果.

// Return 3139 rows
select * from PaymentReciept

// Return 3139 rows
select * from dbo.PaymentReciept 

// Return 0 rows
select * from [dbo.PaymentReciept]
Run Code Online (Sandbox Code Playgroud)

我不明白为什么带方括号的查询没有返回任何结果.我知道方括号用作使用某些特殊字符或关键字的标识符的分隔符.

有人可以向我解释发生了什么,或者指导我阅读一些文章或书籍,在那里我可以更多地了解这种行为.

Aka*_*ash 7

[dbo.PaymentReciept]

表示SQL正在查询名为dbo.PaymentReceipt的表

而

dbo.PaymentReciept并且PaymentReciept意味着SQL正在查询PaymentReceipt模式中调用的表dbo.

要正确使用方括号,请使用:

[dbo].[PaymentReciept]

  • @SyedFarjadZiaZaidi也许它已创建..尝试运行`SELECT*FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE'%PaymentReceipts` (2认同)