表名包含特殊字符' ['和']'

时间:2015-03-17 06:56:43

标签: sql-server create-table

我想在sql server中使用名称中的[]来创建表。它的意思是[]符号是表名的一部分。我可以这样做吗?我使用sql server 2008 r2

4 个答案:

答案 0 :(得分:3)

如果您将表名用双引号括起来,则可以使用]

create table "[Mu]Ha[Ha]" (id int);

请注意,使用irregular identifiers是一个有问题的邀请。并非所有客户端库都能正确处理它们,并且您的代码将变得难以为其他开发人员阅读。

答案 1 :(得分:1)

您可以使用[ ]创建一个表(或列名),但这被认为是一种不好的做法。

CREATE TABLE "tabl[eO]ne" (ID int NOT NULL)

上述方法可行,但被认为是不好的做法,因为它使代码更难以阅读和理解,不仅适用于您,也适用于在您之后使用数据库的其他开发人员。

如果名称包含空格或某些特殊字符,SQL人员在表/列名称周围使用括号,如下例所示:

CREATE TABLE [Table One]
CREATE TABLE [Table-One]
CREATE TABLE [Table_One]
CREATE TABLE [Table*One]
...

这仍然不是一个好习惯,但它遵循“最佳实践”指南。

所有人的最佳做法: 完全避免在表格/列名称中使用特殊字符,数字或空格。

答案 2 :(得分:0)

括在方括号内。 但这不是一个好习惯 [ “名称[α] ABC”]

答案 3 :(得分:0)

您可以使用双支架克服此问题。见下文:

CREATE TABLE dbo.[[tbl]]](id INT)