Pea*_*key 1 sql sql-server-2008
我安装了SQL Server 2008 Express Edition,这是我第一次运行SQL查询.我注意到,如果我选择显示前1000行,查询将括号[]放在数据库名称及其各自的列周围.
我刚刚在dba.stack上发布了这个答案.
它们会转义不"友好"的名称 - 如果您的数据库名称包含特殊字符(例如空格,点或短划线)或表示SQL关键字(例如USE或DATABASE:-)),它们会很有用.如果没有方括号,这样的查询将失败:
SELECT column FROM database.dbo.table;
Run Code Online (Sandbox Code Playgroud)
但是,如果以这种方式编写查询,则忽略关键字:
SELECT [column] FROM [database].dbo.[table];
Run Code Online (Sandbox Code Playgroud)
当构建脚本或编写生成的元数据的脚本解决方案(如生成所有表或全部索引的脚本),我一直包在方括号中的实体名称,使他们无论什么样靠不住的名字已经实施的工作(我并不总是为我控制的系统这样做.您可以使用QUOTENAME函数轻松完成此操作,例如:
SELECT QUOTENAME('table'), QUOTENAME('column'), QUOTENAME('database');
Run Code Online (Sandbox Code Playgroud)
结果:
[table] [column] [database]
Run Code Online (Sandbox Code Playgroud)
如果你在这里搜索我的答案,QUOTENAME你会发现我在许多脚本中使用它,我帮助人们自动生成脚本或构建动态SQL.没有方括号,很多人会遇到运行脚本的问题.
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |