在查询中编写以下内容之间是否存在差异:
SELECT * FROM dbo.Product
相比:
SELECT * FROM [dbo].[Product]
一个比另一个好还是没关系?
没有不同.括号的目的是处理您的db对象具有可能使DBMS混淆的名称的情况,例如名称中包含空格的对象或以保留字命名的对象Trigger
(除其他原因外,如注释中所指出的) ).
出于一致性的目的,您可以dbo
用括号括起所有"对象"(模式,表格和列等).
SELECT [MyColumn] FROM [MyDatabaseName].[dbo].[My Table Name]
注意,我认为用"非常规"名称命名对象通常是不好的做法(有一些例外).但显然,如果您只是针对您无法控制的现有架构编写查询,那就是它的本质.