MS SQL 2005 te Autoincrement field

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
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

MS SQL 2005 te Autoincrement field

Mesaj gönderen Vital »

merhaba arkadslar ;
sitede arama yaptım fakat pek bi sey bulamadim
MS SQL 2005 te Autoincrement Alan nasil olusturulur?
tskler.
Garibanus
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: MS SQL 2005 te Autoincrement field

Mesaj gönderen aslangeri »

s.a.
tabloyu hazırlarken column properties den
Identity Specification dan yapılıyor
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: MS SQL 2005 te Autoincrement field

Mesaj gönderen sabanakman »

Uyarmak gerekirse var olan bir tabloda autoinc alan sonradan ayarlanamaz, silinemez veya değiştirilemez. Ancak bunun yolu aynı tablodan create etmek ve kayıtları o tabloya attıktan sonra orjinal tabloyu silip, yeni tablonun ismine eskisinin ismini vermek olacaktır.

Kod: Tümünü seç

BEGIN TRANSACTION
CREATE TABLE saban.Tmp_tbl(id int NOT NULL IDENTITY (1, 1) NOT FOR REPLICATION,
deneme char(10) NULL)  ON [PRIMARY]
GO
SET IDENTITY_INSERT saban.Tmp_tbl ON
GO
IF EXISTS(SELECT * FROM saban.tbl)
	 EXEC('INSERT INTO saban.Tmp_tbl (id, deneme)
		SELECT id, deneme FROM saban.tbl TABLOCKX')
GO
SET IDENTITY_INSERT saban.Tmp_tbl OFF
GO
DROP TABLE saban.tbl
GO
EXECUTE sp_rename N'saban.Tmp_tbl', N'tbl', 'OBJECT'
GO
COMMIT
gibi.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Re: MS SQL 2005 te Autoincrement field

Mesaj gönderen Vital »

arkadaslar cok tskler ve ayrıca bir sorum daha olacak firebirdde oldugu gibi ms sql de de diger kullanıcıların kayıt ekleme degisikligi vs aynı anda tabloda gormesi olayı varmi?firebirdde transaction u commit yapıp degisiklikleri diger kullanıcılarında gormesini sagliyorduk?
ve ms sql de event yakalama diye bir olay varmi ?
tskler
Garibanus
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: MS SQL 2005 te Autoincrement field

Mesaj gönderen sabanakman »

BeginTrans'tan CommitTrans veya RollbackTrans kodları arasında kalan değişikliğe uğramış kayıtlara erişemezsiniz ama CommitTrans veya RollbackTrans'ten sonra kayıtlara normal erişim devam edecektir. Tabi bu değişikliği kullanıcılara bildirmek karışık bir iş (hatta sql server için şehir efsanesi :N) ). Bunun yerine kayıtları kullanan program arada bir (form açarken, belirli aralıklarla v.s.) .Requery ile kayıtlarını tazelerse, sunucudan kayıtların son durumu çekilir ve taze verilerle çalışılır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Re: MS SQL 2005 te Autoincrement field

Mesaj gönderen Vital »

ahh nerde benim firebird im :lol:
Garibanus
Cevapla