DROP SEQUENCE (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

从当前数据库中删除序列对象。

Transact-SQL 语法约定

语法

DROP SEQUENCE [ IF EXISTS ] { database_name.schema_name.sequence_name | schema_name.sequence_name | sequence_name } [ ,...n ]  
 [ ; ]  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

自变量

IF EXISTS
适用范围:SQL Server(SQL Server 2016 (13.x) 到当前版本)。

只有在序列已存在时才对其进行有条件地删除。

database_name
要在其中创建序列对象的数据库的名称。

schema_name
序列对象所属架构的名称。

sequence_name
要删除的序列的名称。 类型为 sysname。

备注

在生成编号后,序列对象与其生成的编号之间没有延续关系,因此可以删除序列对象,即使生成的编号仍在使用。

当序列对象由存储过程或触发器引用时,可以删除序列对象,因为序列对象未绑定到架构上。 如果序列对象是作为表中的默认值引用的,则无法删除序列对象。 错误消息将列出引用序列的对象。

若要列出数据库中的所有序列对象,请执行以下语句。

SELECT sch.name + '.' + seq.name AS [Sequence schema and name]   
    FROM sys.sequences AS seq  
    JOIN sys.schemas AS sch  
        ON seq.schema_id = sch.schema_id ;  
GO  

安全性

权限

要求具有架构的 ALTER 或 CONTROL 权限。

审核

若要审核 DROP SEQUENCE,请监视 SCHEMA_OBJECT_CHANGE_GROUP

示例

以下示例从当前数据库中删除一个名为 CountBy1 的序列对象。

DROP SEQUENCE CountBy1 ;  
GO  

另请参阅

ALTER SEQUENCE (Transact-SQL)
CREATE SEQUENCE (Transact-SQL)
NEXT VALUE FOR (Transact-SQL)
序列号