`

SQL Server 中的标识符

阅读更多
标识符
    SQL Server 2005 联机丛书

数 据库对象的名称即为其标识符。Microsoft SQL Server 2005 中的所有内容都可以有标识符。服务器、数据库和数据库对象(例如表、视图、列、索引、触发器、过程、约束及规则等)都可以有标识符。大多数对象要求有标识 符,但对有些对象(例如约束),标识符是可选的。

对象标识符是在定义对象时创建的。标识符随后用于引用该对象。例如,下列语句创建一个标识符为 TableX 的表,该表中有两列的标识符分别是 KeyColDescription

CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))

此表还有一个未命名的约束。PRIMARY KEY 约束没有标识符。

标 识符的排序规则取决于定义标识符时所在的级别。为实例级对象(如登录名和数据库名)的标识符指定的是实例的默认排序规则。为数据库对象(例如表、视图和列 名)的标识符指定的是数据库的默认排序规则。例如,对于名称差别仅在于大小写的两个表,可以在使用区分大小写排序规则的数据库中创建,而不能在使用不区分 大小写排序规则的数据库中创建。

<script type="text/Javascript">var ExpCollDivStr=ExpCollDivStr;ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl049e73c17,";var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl04img,";</script>标识符的种类

标识符有两类。

常规标识符

符合标识符的格式规则。在 Transact-SQL 语句中使用常规标识符时不用将其分隔开。

SELECT *
FROM TableX
WHERE KeyCol = 124

分隔标识符

包含在双引号 (") 或者方括号 ([ ]) 内。符合标识符格式规则的标识符可以分隔,也可以不分隔。

SELECT *
FROM [TableX] --Delimiter is optional.
WHERE [KeyCol] = 124 --Delimiter is optional.

在 Transact-SQL 语句中,必须对不符合所有标识符规则的标识符进行分隔。

SELECT *
FROM [My Table] --Identifier contains a space and uses a reserved keyword.
WHERE [order] = 10 --Identifier is a reserved keyword.

常规标识符和分隔标识符包含的字符数必须在 1 到 128 之间。对于本地临时表,标识符最多可以有 116 个字符。

<script type="text/Javascript">var ExpCollDivStr=ExpCollDivStr;ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl08b214982,";var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl08img,";</script>常规标识符规则

常规标识符格式规则取决于数据库兼容级别。可以使用 sp_dbcmptlevel 设置该级别。当兼容级别为 90 时,下列规则适用:

  1. 第一个字符必须是下列字符之一:
    • Unicode 标准 3.2 所定义的字母。Unicode 中定义的字母包括拉丁字符 a-z 和 A-Z,以及来自其他语言的字母字符。
    • 下划线 (_)、“at”符号 (@) 或者数字符号 (#)。
      在 SQL Server 中,某些位于标识符开头位置的符号具有特殊意义。以“at”符号开头的标识符表示局部变量或参数。以一个数字符号开头的标识符表示临时表或过程。以两个数字符号 (##) 开头的标识符表示全局临时对象。
      某些 Transact-SQL 函数的名称以两个 at 符号 (@@) 开头。为了避免与这些函数混淆,不应使用以 @@ 开头的名称。
  2. 后续字符可以包括:
    • 如 Unicode 标准 3.2 中所定义的字母。
    • 基本拉丁字符或其他国家/地区字符中的十进制数字。
    • “at”符号、美元符号 ($)、数字符号或下划线。
  3. 标识符不能是 Transact-SQL 保留字。SQL Server 保留其保留字的大写和小写形式。
  4. 不允许嵌入空格或其他特殊字符。

在 Transact-SQL 语句中使用标识符时,必须用双引号或括号分隔不符合规则的标识符。

注意:
变量名称和存储过程参数名称必须符合常规标识符的规则。
分享到:
评论

相关推荐

    SQL Server 2005对海量数据的处理

    【SQL Server 2005对海量数据的处理】 SQL Server 2005作为微软推出的数据库平台,针对大规模数据的处理提供了强大的支持。在处理海量数据时,SQL Server 2005引入了多项优化策略,特别是表分区技术,以提高数据库...

    sqlserver数据库类型对应Java中的数据类型

    在 SQL Server 中,uniqueidentifier 是一个唯一标识符类型,用于存储唯一标识符。在 Java 中,uniqueidentifier 对应的数据类型是 String。 xml 在 SQL Server 中,xml 是一个 XML 类型,用于存储 XML 数据。在 ...

    sql server

    7. 不合法的标识符是C,因为SQL Server中标识符不应以美元符号($)开头。 8. 包含太多NULL值的列不适合创建索引,因为索引的目的在于加速查询,大量NULL值会降低索引效果,正确答案是C。 9. 系统提供的存储过程通常...

    sql server ce server tools

    用于SQL Server 2000 SP4 (sqlce20sql2ksp4.exe)的SQL Server CE 2.0 复制组件在IIS机器中安装 SQL Server CE 2.0 及 SQL Server 2000 SP4 复制组件。该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL ...

    ifix ODBC配置SQL server

    【ifix ODBC配置SQL server】涉及的知识点主要集中在如何配置ifix与SQL Server之间的数据连接,以便进行历史数据和报警查询。下面将详细解释这些步骤: 1. **安装SQL Server**: - 安装SQL Server时,建议不使用...

    SQL Server查询中的特殊字符处理

    `QUOTENAME()`函数用于确保对象名符合SQL Server的标识符规则,尤其是在对象名包含特殊字符或保留关键字时。 总结起来,理解并正确处理SQL Server查询中的特殊字符是编写高效且无误的查询的关键。熟悉这些特殊字符...

    获得SQLServer所有数据库名称

    首先,我们需要理解“SQLServer”是微软提供的一款关系型数据库管理系统,广泛应用于企业级的数据存储和处理。它提供了强大的数据管理和分析功能,支持多种编程语言进行交互。 “数据库名称”是指在SQL Server中,...

    在VB6.0中调用SQL Server的存储过程.pdf

    "VB6.0中调用SQL Server的存储过程" 在VB6.0中调用SQL Server的存储过程是VB开发者经常遇到的问题,本文将详细介绍如何在VB6.0中调用SQL Server的存储过程,并对存储过程的优点和使用方法进行了详细的解释。 首先...

    mysql和SQLserver区别.docx

    SQL Server 中的 SCOPE_IDENTITY() 函数可以获取当前会话中的最后一个插入的标识符,而在 MySQL 中,需要使用 last_insert_id() 函数来获取当前会话中的最后一个插入的标识符。 8. if 语句 SQL Server 中的 if ...

    sql server2008高级程序设计(1/2)

    第1章 回顾SQL Server中的对象  1.1 数据库的构成  1.2 数据库对象概述  1.3 SQL Server数据类型  1.4 SQL Server对象标识符  1.5 小结 第2章 工具  2.1 联机丛书  2.2 SQL Server配置管理器  2.3 ...

    sqlserver2008

    5. **指定实例名称**:实例名称是SQL Server 实例的唯一标识符。可以选择默认实例或命名实例。 6. **设置身份验证模式**:在SQL Server 2008 中有两种身份验证模式——Windows 身份验证模式和混合模式(包含Windows...

    PostgreSQL_与_MS_SQLServer比较

    ### PostgreSQL与MS SQL Server在过程语言中的差异 在数据库领域,PostgreSQL 和 MS SQL Server 都是非常受欢迎的关系型数据库管理系统。两者在很多方面都提供了强大的功能支持,但在具体实现细节上存在不少差异。...

    SQL Server和Access在使用SQL语言中的差异研究.pdf

    例如,SQL Server的标识符限制不能超过64个字符,而Access的标识符限制不能超过255个字符。另外,SQL Server支持使用特殊字符和关键字,而Access不支持。 二、日期字段上的差异 SQL Server和Access在日期字段上的...

    sqlserver2012主从搭建

    SQL Server 2012的主从搭建是一个涉及多个步骤的过程,目的是构建高可用性的数据库系统,确保数据的安全性和业务的连续性。本文将详细解析该过程中的关键知识点。 首先,构建SQL Server 2012高可用性环境通常需要...

    SQL Server 数据库系统概述.ppt

    * SQL Server 的标识符是用于标识数据库对象的名称。 * SQL Server 的命名规则规定了数据库对象的命名规则,如表名、字段名、索引名等。 * SQL Server 的命名规则提供了丰富的功能,如自动增长、默认值、检查约束等...

    Kepserver通过ODBC 读写SQL数据库

    这种功能对于监控、控制和分析工业环境中的数据非常有用,因为它允许来自各种系统的应用程序无缝地访问和操作SQL Server数据库中的信息。 总的来说,KEPServerEX通过ODBC与SQL Server的集成提供了一种灵活且高效的...

    SqlServer数据库的数据类型

    ### SqlServer数据库的数据类型详解 数据类型在编程与数据库管理中扮演着至关重要的角色,它不仅定义了数据的存储方式,还决定了数据可以执行的操作。SQL Server作为一种广泛使用的数据库管理系统,提供了丰富的...

    Sql server 存儲過程技巧

    EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT IF @hr &lt;&gt; 0 BEGIN EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT SELECT hr = CONVERT(VARBINARY(4), @hr), Source = @src, Description = @...

    SQLServer-让标识列重新开始计算

    在SQL Server中,标识列(Identity Column)是一种自增型字段,常用于自动为表中的记录分配唯一的序列号。这在创建主键或唯一索引时非常有用,尤其是在需要为新记录自动分配唯一编号的情况下。但是,在某些情况下,...

Global site tag (gtag.js) - Google Analytics