mssql de var olan bir alanı identity nasıl yapılır?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

mssql de var olan bir alanı identity nasıl yapılır?

Mesaj gönderen skyking »

FieldName numeric(18,0)

Kod: Tümünü seç

ALTER TABLE TableName ALTER COLUMN FieldName SET IDENTITY (1,1)
olmuyor deli oldum

ne yapmam gerekiyor ?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

:ara identity

pek çok kez konuşuldu bu.

Kolay gelsin.
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

saolun hocam ama yazmadan önce aradım formda
identity alan olusturma var
hiç modify yapılmamıs

anlatabiliyormuyum benim sıkıntım var olan bir alanı identity yapmak
bu alandada birbirinin aynı olucak yani içerik olarak artan ama bu işlemi
mssql serverin yapmasını istiyorum
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

IDENTITY'nin özelliği zaten update (modify) edilememesi.

Şöyle bir yöntem izleyebilirsin (gerçi alanla ilgili foreign key falan varsa sorun yaşayacaksın):

ALTER TABLE TableName ADD ID INTEGER IDENTITY (1, 1);

ALTER TABLE TableName DROP OldColumnName;

EXEC sp_rename 'TableName.ID' 'OldColumnName';

İyi çalışmalar.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Çok sıkıcı bir konu

Mesaj gönderen sabanakman »

Şimdi küllenmiş bir ateşi alevlendirmek istiyorum. Bu konuyu ben de arıyorum ama çözemedim. Eğer çözen varsa cevabını mutlaka yazsın. Fakat kazara bir şey buldum IDENTITY alanın başlangıç değerini ayarlayabiliyoruz.

Kod: Tümünü seç

DBCC CHECKIDENT('tablo adı', RESEED, 0)
burada birinci parametre tablo adı, 3. parametre ise başlangıç değeri. Tabloya kayıt eklenince bu değerin bir fazlası yazılıyor. Bunu bulmak ta aslında problemimi çözecek ama mutlaka bu sorunun bir cevabı olmalı. Eğer bulursam mutlaka gönderirim.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Cevap tatmin edici değil

Mesaj gönderen sabanakman »

Bir yabancı siteden buldum cevabı ama SQL Server ne güdük birşeymiş böyle. Orada verilen bilgiye göre Enterprise Manager (EM) ekranında bir tablo Design Modda iken (Alan bilgileri tanımlanıyorken) bir değişiklik yapıldığında yukarıda araç çubuğunda save butonunun yanında "Save Change Script" botonu beliriyor. Burada yapılanları SQL kodlarına çeviriyor. Oradan bakılırsa bir yığın iş yapıyor. (Temp tablo oluşturup kayıtları kopyalayıp eskisini silip ve tempin adını değiştirmek gibi). Herkese kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla