gpt4 book ai didi

sql - 如何控制 SQL Server 中新标识列的分配顺序?

转载 作者:行者123 更新时间:2023-12-02 21:59:33 24 4
gpt4 key购买 nike

我有一个带有 CreateDate datetime 字段 default(getdate()) 的表,但没有任何标识列。

我想添加 identity(1,1) 字段,该字段将反射(reflect)与 CreateDate 字段相同的现有记录顺序(order by会给出相同的结果)。我怎样才能做到这一点?

我想如果我在 CreateDate 字段上创建聚集键,然后添加标识列,它将起作用(不确定是否保证),有没有好的/更好的方法?

我对 SQL Server 2005 感兴趣,但我想 SQL Server 2008、SQL Server 2000 的答案是相同的。

最佳答案

根据 Remus 的理论回答...您需要首先根据理想的顺序生成一个列表

SELECT
ID, CreateDate
INTO
MyNewTable
FROM
(
SELECT
CreateDate,
ROW_NUMBER() OVER (ORDER BY CreateDate ASC) AS ID
FROM
MyTable
) foo

那么,最好的解决方案是使用SSMS将IDENTITY属性添加到MyNewTable中。 SSMS 将生成一个包含 SET IDENTITY INSERT 的脚本保留顺序

注意:IDENTITY 列只是没有隐含含义的数字,在本练习之后,不应通过它们与 CreateDate 的对齐来推断任何内容...

关于sql - 如何控制 SQL Server 中新标识列的分配顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com