我正在测试和填充利用该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
我为此而感到困惑。我在这里还缺少另一个命令,可以帮助我本地化这里发生的事情吗?
我应该注意,该表属于一个数据库,其他7个表都SEQUENCE
正确运行了该命令。
这是SQL 2012 SP1企业版安装。