我有一個表CreateDate datetime
字段default(getdate())
沒有任何標識列。如何控制SQL Server中新標識列的賦值順序?
我想添加identity(1,1)
字段,該字段將反映現有記錄的相同順序爲CreateDate
字段(order by
會給出相同的結果)。我怎樣才能做到這一點?
我想如果我在CreateDate
字段上創建聚簇鍵然後添加標識列它將工作(不知道它是否有保證),有沒有更好的方法?
我感興趣的SQL Server 2005,但我想答案是爲SQL Server 2008,SQL Server 2000中
不,它不會。只有ORDER BY子句將保證ORDER – gbn 2010-03-15 20:19:06
@gbn每次插入標識列時,自動編號的順序都與聚集索引匹配。我已經依靠這種行爲來獲得我希望的訂單。你是說這種行爲不能保證,可能不會發生,我很幸運? – 2010-03-15 21:21:33
@Patrick:IDENTITY可能會留下空隙,它記錄在MSDN上:「如果一個標識列存在頻繁刪除的表,那麼標識值之間可能會出現空隙。」 – 2010-03-15 21:26:16