SEQUENCE
개체 를 활용하는 특정 테이블을 테스트하고 채우는 과정에 있습니다. 이 과정에서 나는 수만 개의 삽입 라인으로 테이블을 채우는 것을 테스트하고 있습니다 (프로그래밍 방법에 익숙하지 않기 때문에). 이 특정 표에서 볼 수있는 문제는 다른 모집단 테스트를 시작할 때 SEQUENCE
원하는 첫 번째 숫자 (1)로 다시 설정되지 않는다는 것입니다.
새 테스트를 다시 실행하려면 해당 테이블을 삭제 한 후 다음을 실행하십시오.
DROP SEQUENCE foo.fee;
GO
DROP SCHEMA foo;
GO
테스트를 다시 실행하려면 다음 순서대로 실행되는 다음 SCHEMA
& SEQUENCE
명령을 실행하십시오 .
CREATE SCHEMA foo;
GO
CREATE SEQUENCE foo.fee
START WITH 1
INCREMENT BY 1
NO CYCLE
NO CACHE;
GO
그런 다음 테이블을 만듭니다.
CREATE TABLE foo.sample_table_with_data
(order_number bigint PRIMARY KEY NOT NULL,
sample_column_one nvarchar(max) NULL,
sample_column_two nvarchar(max) NULL,
sample_column_three nvarchar(max) NULL)
GO
그것이 완료되면 다음 삽입 명령을 50,000 번 실행합니다.
INSERT INTO [foo].[sample_table_with_data]
(
[order_number],
[sample_column_one],
[sample_column_two],
[sample_column_three]
)
VALUES
(
NEXT VALUE FOR foo.fee,
'Blah',
'Blah Blah',
'Blah Blah Blah'
)
이제 데이터가 테이블에 입력되는 데 전혀 문제가 없습니다. 내가 겪고있는 과제는 테이블을 삭제하고 스키마와 시퀀스를 삭제 한 다음 테이블, 시퀀스 및 스키마를 다시 만들어 SEQUENCE
이전 데이터베이스 화신의 마지막 숫자에서 선택하고 다시 재설정하지 않는 것입니다.
예를 들어, 시퀀스의 마지막 번호가 634,534이면 새 테이블의 다음 시퀀스 번호는 634,535입니다.
테이블을 삭제하고 스키마와 시퀀스를 삭제 한 후 다음을 실행하여 시퀀스와 스키마가 제거되었는지 확인합니다.
SELECT * FROM INFORMATION_SCHEMA.SCHEMATA
GO
SELECT * FROM sys.sequences
GO
왜 이런 일이 일어나고 있는지 잘 모르겠습니다. 여기서 누락 된 또 다른 명령이 있습니까? 여기에서 정확히 무슨 일이 일어나고 있는지 현지화하는 데 도움이됩니까?
이 테이블은 SEQUENCE
명령을 올바르게 실행하는 7 개의 다른 테이블이있는 데이터베이스에 속합니다 .
이것은 SQL 2012 SP1 Enterprise Edition 설치입니다.