SQL Server 序列

17 Mar 2025 | 4 分钟阅读

SQL Server 序列用于创建序列对象,并且可以指定其属性。

序列对象可以定义为用户定义的对象,它绑定到模式,该模式根据创建序列时定义的增量值生成数值序列。

生成的数值序列可以以降序或升序排列,具体取决于已预设的增量值,并且当它达到其终止限制时,还可以再次启动(循环)。与标识列不同,序列不与某些特定表相关联。为了获得生成的序列的下一个值,应用程序可以引用序列对象。

应用程序控制表和序列之间的关系。 序列可以被视为任何用户都可以访问的模式级对象。 与过程不同,序列不属于任何用户。

创建序列对象的语法是

在上面写的语法中

  • Name_of_schema: name_of_schema 指定序列所属的模式。
  • Type_as_integer: Sequence 对象的 type_as_integer 数据类型。 序列对象支持的一些数据类型是 NUMERIC、BIGINT、INT、TINYINT、DECIMAL 和 SMALLINT。
    我们可以根据我们的需求选择任何一种
    • bigint - 它的范围是 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
    • int - 它的范围是 -2,147,483,648 到 2,147,483,647
    • decimal 和 numeric,比例为 0
    • smallint - 它的范围是 -32,768 到 32,767
    • tinyint - 它的范围是 0 到 255
  • Starting_value_of_sequence:starting_value_of_sequence 表示序列的起始值。 序列对象使用此值初始化,并在此值上进一步递增或递减。
  • Incremental_index:incremental_index 表示每次获取序列对象的下一个值时,序列的起始值将要递增的值或索引。
  • Minimum_value:minimum_value 表示序列对象可以达到的最小值。 它充当一个下限。
  • Maximum_value:maximum_value 表示序列对象可以达到的最大值。 它充当一个上限。
  • Size_of_cache:size_of_cache 表示要缓存的值的数量,以提高序列对象的性能。

如何在 SQL Server 中使用序列?

让我们举一个例子来更好地理解。 让我们创建一个名为 students 的表,该表具有三个列,分别名为 studID、rollNo、Name,用于存储学生 ID、学号和学生姓名。 在 SQL Server 中使用上述模式创建表的命令将是


SQL Server Sequence

如图所示,我们已经成功创建了一个具有上述模式的表,即三列,两列的数据类型为 varchar,一列的数据类型为 int。

现在,让我们向 students 表添加一些数据。 SQL Server 中用于在 students 表中添加数据的 INSERT 命令的语法是


SQL Server Sequence

正如我们在图像中看到的,我们已经成功地向 students 表添加了七行,这可以在 SELECT 查询的结果中看到。

现在我们使用序列对象在 studID 列中添加数据。 为此,需要创建一个序列对象。 相同的语法是


SQL Server Sequence

如上图所示,我们创建了一个名为 stud_seq 的序列对象,其初始值为 101,每次从名为 stud_seq 的序列对象中获取值时,它都会递增 1。 为了从序列对象中检索下一个值,语法是

因此,我们使用以下查询在 students 表的 studID 列中添加了数据

因此,本文帮助我们了解 SQL Server 中序列的工作原理以及如何根据我们的问题要求使用它。


下一个主题SQL Server 同义词