2010-09-13 25 views
15

SQL Server 2008 Enterprise kullanıyorum. Mevcut bir tabloya bir kimlik sütunu (benzersiz kümelenmiş dizin ve birincil anahtar olarak) eklemek istiyorum. 1 kimlik sütunu ile tamsayı tabanlı otomatik artış tamam. Herhangi bir çözüm?SQL Server'da bir tabloya yeni kimlik sütunu nasıl eklenir?

BTW: En çok kafa karışıklığım varolan satırlar için, yeni kimlik sütunu verilerini otomatik olarak nasıl dolduracak? peşin

sayesinde George

cevap

39

kullanabilirsiniz -

alter table <mytable> add ident INT IDENTITY 

Bu tabloya ident sütun ekler ve kümelenmiş eklemek için 1.

tarafından 1'den başlayarak ve artan veri ekler dizin -

CREATE CLUSTERED INDEX <indexName> on <mytable>(ident) 
+0

Teşekkürler, soru yanıtladı! – George2

+0

Bir kimlik sütunuyla kümeleme, tablonun sonunda bir sıcak nokta çekişmesi oluşturabilir. Bir kimlik sütunuyla kümelemek için 'ihtiyacınızı' incelerdim. – Rawheiser

+0

@Rawheiser: Kümelenmiş bir dizin için genellikle iyi adaylar için hazırlanmış kimlik sütunları aldım. Durumun böyle olmadığını tespit ettiyseniz, bana yöneltebileceğiniz konuyla ilgili başka bilgileriniz var mı? – mwolfe02

0

Min. 1 yaklaşım var d, ama sonunda mümkün olup olmadığından emin değilsiniz. Ama sizi temin ederim, bu çok etkili bir yaklaşım. Bir kimlik sütununa sahip bir tablo oluşturabilir ve tüm verilerinizi bu tabloya ekleyebilirsiniz. Ve oradan herhangi bir çift veriyi işlemek çocuk oyuncağıdır.

Create a new table with identity, copy data to this new table then drop the existing table followed by renaming the temp table. 

Create a new column with identity & drop the existing column 

referans için bulduk 2 ürünleri: mevcut verilerin bir tablosu için bir kimlik sütunu eklemenin iki yolu vardır http://blog.sqlauthority.com/2009/05/03/sql-server-add-or-remove-identity-property-on-column/ http://cavemansblog.wordpress.com/2009/04/02/ sql-nasıl-add-bir-kimlik-sütun-to-a-tablo-ile-veri/

İlgili konular