Konu: SQL server replikasyonda trigger
Selamlar,
SQL server veritabanında trigger içeriyorsa replikasyon yapılamadığını duydum.
SQL 2008 de replikasyon hazırlığı yapıyorum. Table lardaki Row GUID de trigger gibi davranırmı ?
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
Selamlar,
SQL server veritabanında trigger içeriyorsa replikasyon yapılamadığını duydum.
SQL 2008 de replikasyon hazırlığı yapıyorum. Table lardaki Row GUID de trigger gibi davranırmı ?
Hocam,
"trigger olan veritabanlarında MS SQL replikasyon olmaz" mı yanlış ?
"Table larda kullandığımız Row Guid ler Trigger gibi" mi yanlış ?
Aslinda ikisi de yanlis:)
Trigger olsa da replikasyon olur. Benim bildigim kadariyla triggerla ilgili tek kisitlama replikasyon triggerinin ilk trigger olmasi ve bunun degistirilememesi.
GUID ise NewID() ya da NewSequentialID() adli SQL serverin icinde olan fonksiyonlarla oluyor, trigger ile degil.
Şu NewSequentialID() nasıl kullanılıyor? İlk defa duydum...
Sadece create table'da DEFAULT olarak kullanilabiliyor ve sirali GUID olusturuyor (2005 ve sonrasi).
handle = Sqlstringconnect('driver={SQL Native Client};Trusted_Connection=yes;Server=.\SQLExpress')
If SQLExec(m.handle, 'Create database [GUIDTest]') > 0
SQLExec(m.handle, 'Use [GUIDTest]')
TEXT TO lcCreateTable noshow
CREATE TABLE GUIDTest (
pkid uniqueidentifier rowguidcol DEFAULT NEWSEQUENTIALID(),
field2 varchar(20),
field3 int,
constraint [PK_ID] primary key nonclustered
(
[pkid] asc
)
);
ENDTEXT
SQLExec(m.handle, m.lcCreateTable)
lcInsertData = 'insert into GUIDTest (field2, field3) values (?m.f1, ?m.f2)'
SQLPrepare(m.handle, m.lcInsertData)
For ix= 1 To 100
f1 = Sys(2015)
f2 = m.ix
SQLExec(m.handle)
Endfor
SQLExec(m.handle, 'select * from GUIDTest', 'myCursor')
Else
Aerror(aWhy)
Display Memory Like aWhy
Endif
SQLDisconnect(0)
If Used('myCursor')
Select myCursor
Browse
Endif