DROP SEQUENCE (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
从当前数据库中删除序列对象。
语法
DROP SEQUENCE [ IF EXISTS ] { database_name.schema_name.sequence_name | schema_name.sequence_name | sequence_name } [ ,...n ]
[ ; ]
参数
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)
序列号