Dan*_*ray 9 sql-server sql-server-2012 sql-server-2017
在for T-SQL的文档中CREATE SEQUENCE
,可以看到该CREATE SEQUENCE
命令没有ORDER
参数。
为了进行比较,Oracle 文档CREATE SEQUENCE
显示了ORDER
/NOORDER
选项:
ORDER
指定
ORDER
以保证按请求顺序生成序列号。如果您将序列号用作时间戳,则此子句很有用。对于用于生成主键的序列,保证顺序通常并不重要。
ORDER
如果您将 Oracle 数据库与 Real Application Clusters 一起使用,则仅需要保证有序生成。如果使用独占模式,则始终按顺序生成序列号。
NOORDER
指定
NOORDER
是否不想保证按请求顺序生成序列号。这是默认设置。
Microsoft SQL Server 是否为SEQUENCE
s提供了强排序约束?或者微软一般不认为它很重要?
Aar*_*and 12
在 SQL Server 中,所有序列号都是在单个实例上生成的,因此它们已经固有地排序。如果您只是将它们用作唯一数字,那么无论如何都无关紧要。
Oracle 实现是不同的,因为在 RAC 环境(并非所有 Oracle 实现)中,两个序列号可能由两个不同的“实例”生成(这是 Oracle 的错误术语,但只是在 SQL Server 中绘制等效项)。通常,您不会在意第一个请求的请求是否较慢并且获得的数字是否比稍后请求的数字更高 - 除非,正如 Oracle 文档所说,您将序列用作时间戳以真正反映原始请求的顺序。
归档时间: |
|
查看次数: |
452 次 |
最近记录: |