sql语句中的括号有什么作用?
例如,在声明中:
插入 table1 ([columnname1], columnname2) 值 (val1, val2)
另外,如果表名在括号中,它会做什么?
[] 标记标识符的分隔符,因此如果您有一个名称包含空格的列,例如 Order Qty,您需要用 [] 将其括起来,例如:
select [Order qty] from [Client sales]
它们还用于转义用作标识符的保留关键字
这是“分隔标识符”的 Microsoft SQL Server 非标准语法。SQL 支持标识符的分隔符,以允许表名、列名或其他元数据对象包含以下内容:
Microsoft SQL Server 使用方括号,但这不是 SQL 用于分隔标识符的语法标准。标准情况下,应使用双引号作为分隔符。
在 Microsoft SQL Server 中,您可以启用一种模式以使用标准双引号作为分隔符,如下所示:
SET QUOTED_IDENTIFIER ON;
它们旨在转义保留的关键字或无效的列标识符。
CREATE TABLE test
(
[select] varchar(15)
)
INSERT INTO test VALUES('abc')
SELECT [select] FROM test
它们允许您在列、表等名称中使用关键字(例如date )...
由于这是一种不好的做法,因此通常不包括在内。您应该看到它们被使用的唯一地方是那些从不知道更好的 sql 查询开始的人。除此之外,它们只会使您的查询变得混乱。
括号内的任何内容都被视为单个标识符(例如 [test machine]。这可用于将名称与空格括起来或转义保留字(例如 [order]、[select]、[group])。
如果您使用与 sql 中的任何保留关键字相同的任何列名,在这种情况下,您可以将列名放在方括号中,以区分您的自定义列名和现有的保留关键字。
当表名或文件名带有空格或破折号 (-) 等时...您会收到“FROM 子句中的系统税错误”。使用 [] 括号来解决这个问题。
它们只是分隔符,允许您在列名或表名中放置特殊字符(如空格),例如
insert into [Table One] ([Column Name 1], columnname2) values (val1, val2)