如果有人用Microsoft从Microsoft使用SQL Server management Studio右键单击数据库中的给定表并在脚本表中创建查询窗口,它会在窗口中显示创建表代码。我注意到类似如下SQL从DBMS创建表脚本包含[]
CREATE TABLE [DBO]。[登录](
[用户ID] [INT] NOT NULL,
[LoginName将]为nvarchar COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
等
)
这是怎么出现在其他DBMS呢?
这是什么特定于DBMS使用?
这只是一个奇特的观点吗?
为什么“[]”用于列名和表名。简单TSQL定义看起来像
CREATE TABLE表名(
#1列数据类型NOT NULL,
列#2数据类型NOT NULL UNIQUE,
- 等等
)
请不要介意我愚蠢的问题。
由于提前,
巴拉吉小号
”不同的数据库产品使用不同的字符“ - FWIW SQL标准指定双引号(ascii 0034)。 SQL Server可以通过使用'SET QUOTED_IDENTIFIER ON'来支持标准行为。 – onedaywhen 2010-07-07 07:41:41
感谢您的解释,它有助于理解“[]”的用法。 您在上述上下文中的“解析”是什么意思? – rockbala 2010-07-08 01:38:41
@罗克巴拉:“解析”我其实是指“lexing”。如果您的表或列名称具有空格(例如),则无论程序读取您的CREATE TABLE语句都无法理解它。对你来说“CREATE TABLE New Users(Columns ...)”是有道理的,但是程序会在New和Users之间的空间中窒息。 – 2010-07-08 16:56:50