Varlık kodu aşağıdaki gibidir:
Ekleme kodu şöyledir:
Sadece ismin değerini belirliyoruz ve id'ye değer atamıyoruz, üretilen sql ifadesinin ne olduğuna bakalım??? , aşağıdaki gibi:
exec sp_executesql N'DECLARE @generated_keys table([Id] uniqueidentifier) [dbo] EKLE. [TestTab] ([İsim]) ÇIKIŞ eklendi. [Id] INTO @generated_keys DEĞERLER (@0) SEÇ t.[Id] @generated_keys AS G JOIN [DBO]. [TestTab] AS t on g.[Id] = t.[Id] NEREDE @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' architectwww.itsvse.com'
INSERT TestTab tablosunun sadece İsim alanını eklediğini gördük, Id'nin varsayılan bir değeri var mı??? Şunu bulduk
ef, Id birincil anahtarının varsayılan değer tını, varsayılan değer veya bağlama "(newsequentialid())" belirlememe yardımcı oldu ve newsequentialid() fonksiyonunu kullanmamda yardımcı oldu; bu fonksiyon aşağıdaki gibi tanıtılır:
1.: Newequentialid fonksiyonunun newid fonksiyonuna göre en büyük avantajı, bir UNIQUEIDENTIFIER alanında bir indeks oluşturursanız, newid kullanılarak oluşturulan yeni değerin sabit olmaması, bu yüzden yeni değerin indeks B+ ağacındaki değişikliğin rastgele olmasıdır. Newsequentialid tarafından üretilen yeni değer düzenli ise, B+ indeks ağacının değişimi normaldir. Düzenlilik ve düzensizlik performans iyileştirmelerine yol açar.
2: UNIQUEIDENTIFIER, birincil anahtar olarak çok kullanışlı bir şeydir ve veri birleştirme gibi işlemlerde yerini dolduramaz avantajlara sahiptir Ancak, sıradan GUID'lerin merkeziyetsizleştirilmesi nedeniyle, birincil anahtar kümelenmiş bir indekse eklenirse, kayıt eklenirken çok daha az verimli olur
SQL SERVER 2005, MSDN açıklayan NEWSEQUENTIALID adlı yeni bir fonksiyon ekliyor: Belirtilen makinede, fonksiyon tarafından daha önce oluşturulan herhangi bir GUID'den daha büyük bir GUID oluşturun. NEWSEQUENTIALID() sorguda referans alınamaz.
Not: Bu, yalnızca bir veritabanı sütununun DEFAULT DEĞERİ olarak kullanılabileceği ve SELECT NEWSEQUENTIALID() gibi iyimleri çalıştıramadığı anlamına gelir. NEWSEQUENTIALID() tarafından oluşturulan GUID, yalnızca bilgisayarın ağ kartı yoksa o bilgisayarda benzersizdir.
Not: Bu cümle yanlış, sadece bilgisayarda ağ kartı olduğunda oluşturulan GUID dünyada benzersiz olmalıdır NEWSEQUENTIALID() kullanarak yaprak düzeyindeki indekste sayfa çatışmasını azaltmak için bir GUID oluşturabilirsiniz.
|