DROP SEQUENCE (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance

Removes a sequence object from the current database.

Transact-SQL syntax conventions

Syntax

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

Note

To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.

Arguments

IF EXISTS
Applies to: SQL Server ( SQL Server 2016 (13.x) through current version).

Conditionally drops the sequence only if it already exists.

database_name
Is the name of the database in which the sequence object was created.

schema_name
Is the name of the schema to which the sequence object belongs.

sequence_name
Is the name of the sequence to be dropped. Type is sysname.

Remarks

After generating a number, a sequence object has no continuing relationship to the number it generated, so the sequence object can be dropped, even though the number generated is still in use.

A sequence object can be dropped while it is referenced by a stored procedure, or trigger, because it is not schema bound. A sequence object cannot be dropped if it is referenced as a default value in a table. The error message will list the object referencing the sequence.

To list all sequence objects in the database, execute the following statement.

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  

Security

Permissions

Requires ALTER or CONTROL permission on the schema.

Audit

To audit DROP SEQUENCE, monitor the SCHEMA_OBJECT_CHANGE_GROUP.

Examples

The following example removes a sequence object named CountBy1 from the current database.

DROP SEQUENCE CountBy1 ;  
GO  

See Also

ALTER SEQUENCE (Transact-SQL)
CREATE SEQUENCE (Transact-SQL)
NEXT VALUE FOR (Transact-SQL)
Sequence Numbers