CREATE SEQUENCE(Transact-SQL)CREATE SEQUENCE (Transact-SQL)

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database

시퀀스 개체를 만들고 해당 속성을 지정합니다.Creates a sequence object and specifies its properties. 시퀀스는 시퀀스를 만들 때 사용된 사양에 따라 숫자 값의 시퀀스를 생성하는 사용자 정의 스키마 바운드 개체입니다.A sequence is a user-defined schema bound object that generates a sequence of numeric values according to the specification with which the sequence was created. 숫자 값의 시퀀스는 정의된 간격에 따라 오름차순이나 내림차순으로 생성되며, 시퀀스가 모두 사용되면 다시 시작(순환)되도록 구성할 수 있습니다.The sequence of numeric values is generated in an ascending or descending order at a defined interval and can be configured to restart (cycle) when exhausted. ID 열과 달리 시퀀스는 특정 테이블과 연결되지 않습니다.Sequences, unlike identity columns, are not associated with specific tables. 애플리케이션에서는 시퀀스 개체를 참조하여 다음 값을 검색합니다.Applications refer to a sequence object to retrieve its next value. 시퀀스와 테이블 간의 관계는 애플리케이션에서 제어합니다.The relationship between sequences and tables is controlled by the application. 사용자 애플리케이션에서는 시퀀스 개체를 참조하고 여러 행 및 테이블에서 값을 조정합니다.User applications can reference a sequence object and coordinate the values across multiple rows and tables.

행을 삽입할 때 생성되는 ID 열 값과는 달리 애플리케이션에서는 NEXT VALUE FOR function을 호출하여 행을 삽입하지 않고도 다음 시퀀스 번호를 가져올 수 있습니다.Unlike identity columns values that are generated when rows are inserted, an application can obtain the next sequence number without inserting the row by calling the NEXT VALUE FOR function. 여러 시퀀스 번호를 한 번에 가져오려면 sp_sequence_get_range 를 사용합니다.Use sp_sequence_get_range to get multiple sequence numbers at once.

CREATE SEQUENCENEXT VALUE FOR 함수를 함께 사용하는 시나리오에 대한 자세한 내용은 시퀀스 번호를 참조하세요.For information and scenarios that use both CREATE SEQUENCE and the NEXT VALUE FOR function, see Sequence Numbers.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

CREATE SEQUENCE [schema_name . ] sequence_name  
    [ AS [ built_in_integer_type | user-defined_integer_type ] ]  
    [ START WITH <constant> ]  
    [ INCREMENT BY <constant> ]  
    [ { MINVALUE [ <constant> ] } | { NO MINVALUE } ]  
    [ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ]  
    [ CYCLE | { NO CYCLE } ]  
    [ { CACHE [ <constant> ] } | { NO CACHE } ]  
    [ ; ]  

注意

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

인수Arguments

sequence_namesequence_name
데이터베이스에서 시퀀스를 식별하는 고유 이름을 지정합니다.Specifies the unique name by which the sequence is known in the database. 형식은 sysname 입니다.Type is sysname.

[ built_in_integer_type | user-defined_integer_type[ built_in_integer_type | user-defined_integer_type
시퀀스는 모든 정수 유형으로 정의할 수 있습니다.A sequence can be defined as any integer type. 다음 형식이 허용됩니다.The following types are allowed.

  • tinyint - 0에서 255 사이의 범위tinyint - Range 0 to 255
  • smallint - -32,767에서 32,768 사이의 범위smallint - Range -32,768 to 32,767
  • int - -2,147,483,648에서 2,147,483,647 사이의 범위int - Range -2,147,483,648 to 2,147,483,647
  • bigint - -9,223,372,036,854,775,808에서 9,223,372,036,854,775,807 사이의 범위bigint - Range -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
  • 소수 자릿수가 0인 decimal 또는 numeric.decimal and numeric with a scale of 0.
  • 허용되는 형식 중 하나에 기반을 둔 사용자 정의 데이터 형식(별칭 유형)Any user-defined data type (alias type) that is based on one of the allowed types.

데이터 형식을 제공하지 않은 경우 bigint 데이터 형식이 기본값으로 사용됩니다.If no data type is provided, the bigint data type is used as the default.

START WITH <constant>START WITH <constant>
시퀀스 개체가 반환하는 첫 번째 값입니다.The first value returned by the sequence object. START 값은 시퀀스 개체의 최대값보다 작거나 같고 최소값보다 크거나 같은 값이어야 합니다.The START value must be a value less than or equal to the maximum and greater than or equal to the minimum value of the sequence object. 새 시퀀스 개체의 기본 시작 값은 오름차순 시퀀스 개체에 대해서는 최소값이고, 내림차순 시퀀스 개체에 대해서는 최대값입니다.The default start value for a new sequence object is the minimum value for an ascending sequence object and the maximum value for a descending sequence object.

INCREMENT BY <constant>INCREMENT BY <constant>
각각의 NEXT VALUE FOR 함수 호출에 대해 시퀀스 개체의 값을 증가시키거나 감소시키는(음수인 경우) 데 사용되는 값입니다.Value used to increment (or decrement if negative) the value of the sequence object for each call to the NEXT VALUE FOR function. 증가값이 음수이면 시퀀스 개체가 내림차순이고, 그렇지 않으면 오름차순입니다.If the increment is a negative value, the sequence object is descending; otherwise, it is ascending. 증가값은 0일 수 없습니다.The increment cannot be 0. 새 시퀀스 개체의 기본 증가분은 1입니다.The default increment for a new sequence object is 1.

[ MINVALUE <constant> | NO MINVALUE ][ MINVALUE <constant> | NO MINVALUE ]
시퀀스 개체의 경계를 지정합니다.Specifies the bounds for the sequence object. 새 시퀀스 개체의 기본 최소값은 해당 시퀀스 개체의 데이터 형식에 대한 최소값입니다.The default minimum value for a new sequence object is the minimum value of the data type of the sequence object. tinyint 형식에 대해서는 0이고 다른 모든 데이터 형식에 대해서는 음수입니다.This is zero for the tinyint data type and a negative number for all other data types.

[ MAXVALUE <constant> | NO MAXVALUE[ MAXVALUE <constant> | NO MAXVALUE
시퀀스 개체의 경계를 지정합니다.Specifies the bounds for the sequence object. 새 시퀀스 개체의 기본 최대값은 해당 시퀀스 개체의 데이터 형식에 대한 최대값입니다.The default maximum value for a new sequence object is the maximum value of the data type of the sequence object.

[ CYCLE | NO CYCLE ][ CYCLE | NO CYCLE ]
시퀀스 개체를 최소값 또는 최대값(내림차순 시퀀스 개체의 경우)에서 다시 시작해야 하는지, 아니면 최소값 또는 최대값을 초과하는 경우 예외를 발생시켜야 하는지를 지정하는 속성입니다.Property that specifies whether the sequence object should restart from the minimum value (or maximum for descending sequence objects) or throw an exception when its minimum or maximum value is exceeded. 새 시퀀스 개체의 기본 순환 옵션은 NO CYCLE입니다.The default cycle option for new sequence objects is NO CYCLE.

注意

SEQUENCE 순환은 시작 값이 아니라 최솟값 또는 최댓값에서 다시 시작됩니다.Cycling a SEQUENCE restarts from the minimum or maximum value, not from the start value.

[ CACHE [<constant> ] | NO CACHE ][ CACHE [<constant> ] | NO CACHE ]
시스템 번호를 생성하는 데 필요한 디스크 IO 수를 최소화하여 시퀀스 개체를 사용하는 애플리케이션의 성능을 향상시킵니다.Increases performance for applications that use sequence objects by minimizing the number of disk IOs that are required to generate sequence numbers. 기본값으로 CACHE가 됩니다.Defaults to CACHE.

예를 들어 캐시 크기 50을 선택한 경우 SQL ServerSQL Server에서는 50개의 개별 값을 캐시된 상태로 유지하지 않습니다.For example, if a cache size of 50 is chosen, SQL ServerSQL Server does not keep 50 individual values cached. 현재 값 및 캐시에 남아 있는 값의 개수만 캐시합니다.It only caches the current value and the number of values left in the cache. 따라서 캐시 저장에 필요한 메모리 양은 항상 시퀀스 개체 데이터 형식의 인스턴스 두 개입니다.This means that the amount of memory required to store the cache is always two instances of the data type of the sequence object.

注意

캐시 크기를 지정하지 않고 캐시 옵션을 설정하면 데이터베이스 엔진에서 크기를 선택합니다.If the cache option is enabled without specifying a cache size, the Database Engine will select a size. 그러나 선택의 일관성이 보장되지 않습니다.However, users should not rely upon the selection being consistent. MicrosoftMicrosoft 는 캐시 크기 계산 방법을 예고 없이 변경할 수 있습니다.might change the method of calculating the cache size without notice.

CACHE 옵션을 사용하여 만들 경우 전원 오류와 같은 예기치 않은 종료로 인해 캐시에 남아 있는 시퀀스 번호가 손실될 수 있습니다.When created with the CACHE option, an unexpected shutdown (such as a power failure) may result in the loss of sequence numbers remaining in the cache.

일반적인 주의 사항General Remarks

시퀀스 번호는 현재 트랜잭션 범위 외부에서 생성되며,Sequence numbers are generated outside the scope of the current transaction. 시퀀스 번호를 사용하는 트랜잭션이 커밋되는지 또는 롤백되는지 여부에 관계없이 사용됩니다.They are consumed whether the transaction using the sequence number is committed or rolled back. 중복 유효성 검사는 레코드가 완전히 채워진 후에만 수행됩니다.Duplicate validation only occurs once a record is fully populated. 이 문제는 생성 중에 동일한 번호가 둘 이상의 레코드에 사용되지만 중복으로 식별되는 경우가 발생할 수 있습니다.This can result in some cases where the same number is used for more than one record during creation, but then gets identified as a duplicate. 이 상황이 발생하고 다른 자동 번호 값이 후속 레코드에 적용되면 자동 번호 값 사이의 간격이 발생하여 예상되는 동작이 될 수 있습니다.If this occurs and other autonumber values have been applied to subsequent records, this can result in a gap between autonumber values and is expected behavior.

캐시 관리Cache management

성능 향상을 위해 SQL ServerSQL Server에서는 CACHE 인수로 지정된 수의 시퀀스 번호를 미리 할당합니다.To improve performance, SQL ServerSQL Server pre-allocates the number of sequence numbers specified by the CACHE argument.

예를 들어 시작 값이 1이고 캐시 크기가 15인 새 시퀀스가 만들어집니다.For an example, a new sequence is created with a starting value of 1 and a cache size of 15. 첫 번째 값이 필요한 경우 1에서 15 사이의 값을 메모리에서 사용할 수 있습니다.When the first value is needed, values 1 through 15 are made available from memory. 마지막으로 캐시된 값(15)은 디스크의 시스템 테이블에 기록됩니다.The last cached value (15) is written to the system tables on the disk. 15개 번호를 모두 사용한 경우 다음 요청(16번) 시 캐시가 다시 할당됩니다.When all 15 numbers are used, the next request (for number 16) will cause the cache to be allocated again. 마지막으로 캐시된 새 값(30)은 시스템 테이블에 기록됩니다.The new last cached value (30) will be written to the system tables.

22개 번호를 사용한 후에 데이터베이스 엔진Database Engine이 중지된 경우 이전에 저장된 번호 대신 메모리에서 다음에 예정된 시퀀스 번호(23)가 시스템 테이블에 기록됩니다.If the 데이터베이스 엔진Database Engine is stopped after you use 22 numbers, the next intended sequence number in memory (23) is written to the system tables, replacing the previously stored number.

SQL Server를 다시 시작한 후 시퀀스 번호가 필요하면 시스템 테이블에서 시작 번호(23)를 읽습니다.After SQL Server restarts and a sequence number is needed, the starting number is read from the system tables (23). 15개 번호(23-38)의 캐시 양이 메모리에 할당되고 캐시되지 않은 다음 번호(39)가 시스템 테이블에 기록됩니다.The cache amount of 15 numbers (23-38) is allocated to memory and the next non-cache number (39) is written to the system tables.

전원 오류와 같은 상황에서 데이터베이스 엔진Database Engine이 비정상적으로 중지된 경우에는 시스템 테이블에서 읽은 번호(39)로 시퀀스가 다시 시작됩니다.If the 데이터베이스 엔진Database Engine stops abnormally for an event such as a power failure, the sequence restarts with the number read from system tables (39). 메모리에 할당되었지만 사용자 또는 애플리케이션에서 요청한 적이 없는 시퀀스 번호는 모두 손실됩니다.Any sequence numbers allocated to memory (but never requested by a user or application) are lost. 이 기능은 간격이 생길 수는 있지만 단일 시퀀스 개체가 CYCLE 로 정의되거나 수동으로 다시 시작되지 않은 경우 해당 개체에 대해 같은 값이 두 번 발생하지 않도록 합니다.This functionality may leave gaps, but guarantees that the same value will never be issued two times for a single sequence object unless it is defined as CYCLE or is manually restarted.

캐시는 현재 값(마지막으로 발생한 값) 및 캐시에 남아 있는 값의 개수에 대한 추적을 통해 메모리에서 유지 관리됩니다.The cache is maintained in memory by tracking the current value (the last value issued) and the number of values left in the cache. 따라서 캐시에서 사용하는 메모리 양은 항상 시퀀스 개체 데이터 형식의 인스턴스 두 개입니다.Therefore, the amount of memory used by the cache is always two instances of the data type of the sequence object.

캐시 인수를 NO CACHE 로 설정하면 시퀀스가 사용될 때마다 현재 시퀀스 값이 시스템 테이블에 기록됩니다.Setting the cache argument to NO CACHE writes the current sequence value to the system tables every time that a sequence is used. 이로 인해 디스크 액세스가 증가하여 성능이 저하될 수는 있지만 의도하지 않은 간격이 발생할 수 있는 가능성은 줄어듭니다.This might slow performance by increasing disk access, but reduces the chance of unintended gaps. NEXT VALUE FOR 또는 sp_sequence_get_range 함수를 사용하여 번호를 요청한 경우에도 간격이 발생할 수 있지만 이 경우에는 번호가 사용되지 않거나 커밋되지 않은 트랜잭션에 사용됩니다.Gaps can still occur if numbers are requested using the NEXT VALUE FOR or sp_sequence_get_range functions, but then the numbers are either not used or are used in uncommitted transactions.

시퀀스 개체에서 CACHE 옵션을 사용하는 경우 해당 시퀀스 개체를 다시 시작하거나 INCREMENT, CYCLE, MINVALUE, MAXVALUE 또는 캐시 크기 속성을 변경하면 변경 내용이 적용되기 전에 캐시가 시스템 테이블에 기록됩니다.When a sequence object uses the CACHE option, if you restart the sequence object, or alter the INCREMENT, CYCLE, MINVALUE, MAXVALUE, or the cache size properties, it will cause the cache to be written to the system tables before the change occurs. 그런 다음 건너뛰는 번호 없이 현재 값부터 캐시가 다시 로드됩니다.Then the cache is reloaded starting with the current value (i.e. no numbers are skipped). 캐시 크기 변경은 즉시 적용됩니다.Changing the cache size takes effect immediately.

캐시된 값을 사용할 수 있는 경우의 CACHE 옵션CACHE option when cached values are available

다음 프로세스는 시퀀스 개체에 대한 메모리 내 캐시에 사용하지 않은 값이 있는 경우 CACHE 옵션의 다음 값을 생성하도록 시퀀스 개체를 요청할 때마다 발생합니다.The following process occurs every time that a sequence object is requested to generate the next value for the CACHE option if there are unused values available in the in-memory cache for the sequence object.

  1. 시퀀스 개체의 다음 값이 계산됩니다.The next value for the sequence object is calculated.

  2. 시퀀스 개체의 새로운 현재 값이 메모리 내에서 업데이트됩니다.The new current value for the sequence object is updated in memory.

  3. 문 호출 시 계산된 값이 반환됩니다.The calculated value is returned to the calling statement.

캐시가 모두 사용된 경우의 CACHE 옵션CACHE option when the cache is exhausted

다음 프로세스는 캐시가 모두 사용된 경우 CACHE 옵션의 다음 값을 생성하도록 시퀀스 개체를 요청할 때마다 발생합니다.The following process occurs every time a sequence object is requested to generate the next value for the CACHE option if the cache has been exhausted:

  1. 시퀀스 개체의 다음 값이 계산됩니다.The next value for the sequence object is calculated.

  2. 새 캐시의 마지막 값이 계산됩니다.The last value for the new cache is calculated.

  3. 시퀀스 개체에 대한 시스템 테이블 행이 잠기고, 2단계에서 계산된 값(마지막 값)이 시스템 테이블에 기록됩니다.The system table row for the sequence object is locked, and the value calculated in step 2 (the last value) is written to the system table. 유지되는 새 값을 사용자에게 알리기 위해 캐시가 모두 사용된 xevent가 실행됩니다.A cache-exhausted xevent is fired to notify the user of the new persisted value.

NO CACHE 옵션NO CACHE option

다음 프로세스는 NO CACHE 옵션의 다음 값을 생성하도록 시퀀스 개체를 요청할 때마다 발생합니다.The following process occurs every time that a sequence object is requested to generate the next value for the NO CACHE option:

  1. 시퀀스 개체의 다음 값이 계산됩니다.The next value for the sequence object is calculated.

  2. 시퀀스 개체의 새로운 현재 값이 시스템 테이블에 기록됩니다.The new current value for the sequence object is written to the system table.

  3. 문 호출 시 계산된 값이 반환됩니다.The calculated value is returned to the calling statement.

메타데이터Metadata

시퀀스에 대한 자세한 내용을 보려면 sys.sequences를 쿼리하십시오.For information about sequences, query sys.sequences.

보안Security

사용 권한Permissions

SCHEMA에 대한 CREATE SEQUENCE, ALTER 또는 CONTROL 권한이 필요합니다.Requires CREATE SEQUENCE, ALTER, or CONTROL permission on the SCHEMA.

  • db_owner 및 db_ddladmin 고정 데이터베이스 역할의 멤버는 시퀀스 개체를 생성, 변경 및 삭제할 수 있습니다.Members of the db_owner and db_ddladmin fixed database roles can create, alter, and drop sequence objects.

  • db_owner 및 db_datawriter 고정 데이터베이스 역할의 멤버는 번호를 생성하도록 하여 시퀀스 개체를 업데이트할 수 있습니다.Members of the db_owner and db_datawriter fixed database roles can update sequence objects by causing them to generate numbers.

다음 예에서는 사용자 AdventureWorks\Larry에 대해 테스트 스키마의 시퀀스를 만들 수 있는 권한을 부여합니다.The following example grants the user AdventureWorks\Larry permission to create sequences in the Test schema.

GRANT CREATE SEQUENCE ON SCHEMA::Test TO [AdventureWorks\Larry]  

ALTER AUTHORIZATION 문을 사용하여 시퀀스 개체의 소유권을 이전할 수 있습니다.Ownership of a sequence object can be transferred by using the ALTER AUTHORIZATION statement.

시퀀스에서 사용자 정의 데이터 형식을 사용하는 경우에는 시퀀스 작성자에게 해당 형식에 대한 REFERENCES 권한이 있어야 합니다.If a sequence uses a user-defined data type, the creator of the sequence must have REFERENCES permission on the type.

감사Audit

CREATE SEQUENCE 를 감사하려면 SCHEMA_OBJECT_CHANGE_GROUP 을 모니터링합니다.To audit CREATE SEQUENCE, monitor the SCHEMA_OBJECT_CHANGE_GROUP.

예제Examples

시퀀스를 만들고 NEXT VALUE FOR 함수를 사용하여 시퀀스 번호를 생성하는 방법에 대한 예는 시퀀스 번호을 참조하세요.For examples of creating sequences and using the NEXT VALUE FOR function to generate sequence numbers, see Sequence Numbers.

다음 예에서는 대부분 테스트라는 스키마의 시퀀스 개체를 만듭니다.Most of the following examples create sequence objects in a schema named Test.

테스트 스키마를 만들려면 다음 명령문을 실행합니다.To create the Test schema, execute the following statement.

CREATE SCHEMA Test ;  
GO  

A.A. 1씩 증가하는 시퀀스 만들기Creating a sequence that increases by 1

다음 예에서는 Thierry라는 사용자가 사용할 때마다 1씩 증가하는 CountBy1이라는 시퀀스를 만듭니다.In the following example, Thierry creates a sequence named CountBy1 that increases by one every time that it is used.

CREATE SEQUENCE Test.CountBy1  
    START WITH 1  
    INCREMENT BY 1 ;  
GO  

B.B. 1씩 감소하는 시퀀스 만들기Creating a sequence that decreases by 1

다음 예에서는 0부터 시작하여 사용할 때마다 1씩 음수를 계산합니다.The following example starts at 0 and counts into negative numbers by one every time it is used.

CREATE SEQUENCE Test.CountByNeg1  
    START WITH 0  
    INCREMENT BY -1 ;  
GO  

C.C. 5씩 증가하는 시퀀스 만들기Creating a sequence that increases by 5

다음 예에서는 사용할 때마다 5씩 증가하는 시퀀스를 만듭니다.The following example creates a sequence that increases by 5 every time it is used.

CREATE SEQUENCE Test.CountBy1  
    START WITH 5  
    INCREMENT BY 5 ;  
GO  

D.D. 지정된 번호에서 시작하는 시퀀스 만들기Creating a sequence that starts with a designated number

Thierry는 테이블을 가져온 후 지금까지 사용된 가장 높은 ID 번호가 24,328임을 알게 됩니다.After importing a table, Thierry notices that the highest ID number used is 24,328. Thierry에게는 24,329부터 번호를 생성하는 시퀀스가 필요합니다.Thierry needs a sequence that will generate numbers starting at 24,329. 다음 코드에서는 24,329부터 시작하여 1씩 증가하는 시퀀스를 만듭니다.The following code creates a sequence that starts with 24,329 and increments by 1.

CREATE SEQUENCE Test.ID_Seq  
    START WITH 24329  
    INCREMENT BY 1 ;  
GO  

E.E. 기본값을 사용하여 시퀀스 만들기Creating a sequence using default values

다음 예에서는 기본값을 사용하여 시퀀스를 만듭니다.The following example creates a sequence using the default values.

CREATE SEQUENCE Test.TestSequence ;  

시퀀스 속성을 보려면 다음 문을 실행합니다.Execute the following statement to view the properties of the sequence.

SELECT * FROM sys.sequences WHERE name = 'TestSequence' ;  

출력의 목록 일부는 기본값을 나타냅니다.A partial list of the output demonstrates the default values.

출력Output 기본값Default value
start_value -9223372036854775808
increment 1
mimimum_value -9223372036854775808
maximum_value 9223372036854775807
is_cycling 0
is_cached 1
current_value -9223372036854775808

F.F. 지정한 데이터 형식으로 시퀀스 만들기Creating a sequence with a specific data type

다음 예에서는 smallint 데이터 형식을 사용하여 -32,768부터 32,767까지의 시퀀스를 만듭니다.The following example creates a sequence using the smallint data type, with a range from -32,768 to 32,767.

CREATE SEQUENCE SmallSeq 
    AS smallint ;  

G.G. 모든 인수를 사용하여 시퀀스 만들기Creating a sequence using all arguments

다음 예에서는 decimal 데이터 형식을 사용하여 0부터 255 사이 범위의 DecSeq라는 시퀀스를 만듭니다.The following example creates a sequence named DecSeq using the decimal data type, having a range from 0 to 255. 시퀀스는 125부터 시작하여 번호가 생성될 때마다 25씩 증가합니다.The sequence starts with 125 and increments by 25 every time that a number is generated. 시퀀스가 순환하도록 구성되었기 때문에 값이 최대값 200을 초과하는 경우 최소값 100에서 시퀀스가 다시 시작됩니다.Because the sequence is configured to cycle when the value exceeds the maximum value of 200, the sequence restarts at the minimum value of 100.

CREATE SEQUENCE Test.DecSeq  
    AS decimal(3,0)   
    START WITH 125  
    INCREMENT BY 25  
    MINVALUE 100  
    MAXVALUE 200  
    CYCLE  
    CACHE 3  
;  

첫 번째 값(START WITH 옵션 125)을 보려면 다음 문을 실행합니다.Execute the following statement to see the first value; the START WITH option of 125.

SELECT NEXT VALUE FOR Test.DecSeq;  

150, 175 및 200을 반환하려면 문을 세 번 더 실행합니다.Execute the statement three more times to return 150, 175, and 200.

시작 값이 MINVALUE 옵션 100으로 다시 순환되는 방식을 보려면 문을 다시 실행합니다.Execute the statement again to see how the start value cycles back to the MINVALUE option of 100.

캐시 크기를 확인하고 현재 값을 보려면 다음 코드를 실행합니다.Execute the following code to confirm the cache size and see the current value.

SELECT cache_size, current_value   
FROM sys.sequences  
WHERE name = 'DecSeq' ;  

참고 항목See Also

ALTER SEQUENCE(Transact-SQL) ALTER SEQUENCE (Transact-SQL)
DROP SEQUENCE (Transact-SQL) DROP SEQUENCE (Transact-SQL)
NEXT VALUE FOR (Transact-SQL) NEXT VALUE FOR (Transact-SQL)
시퀀스 번호Sequence Numbers