我正在寻找一种方法来找到填充有 CURRENT_TIMESTAMP 的列的可排序替代方案,我现在很难过。
我有一个基于 Web 的表单,其中包含多个字段,包括一个隐藏在表单上的字段,该字段在提交表单时将 CURRENT_TIMESTAMP 写入数据库。
我面临的挑战是我想从这些表单创建报告(按月、周或年排序)并按时间戳对它们进行排序,但根据我在这里看到的内容,排序是不可能的。
有没有我可以用来实现我想要的结果的替代方法?
我正在寻找一种方法来找到填充有 CURRENT_TIMESTAMP 的列的可排序替代方案,我现在很难过。
我有一个基于 Web 的表单,其中包含多个字段,包括一个隐藏在表单上的字段,该字段在提交表单时将 CURRENT_TIMESTAMP 写入数据库。
我面临的挑战是我想从这些表单创建报告(按月、周或年排序)并按时间戳对它们进行排序,但根据我在这里看到的内容,排序是不可能的。
有没有我可以用来实现我想要的结果的替代方法?
我正在测试和填充利用该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 企业版安装。