Access Sql Bağlantısı

1 2
08/09/2024, 02:00

karaayhan

access'de var olan bir tabloyu Sql server'e taşıdığımızda otomatik sayı alanını ( identity specification / is identy özelliğini yes ) olarak değiştiremiyorum. Herhangi bir basit tabloyu export ettim sql'e ancak kayıt ekleyemiyorum ne Access bağlı tablodan ne de Sql server'dan nerede hata yapıyorum..?

örnek eklemedim
08/09/2024, 21:49

onur_can

Access tablosundan otomatik sayı alanını silip tekrar tanımlayın, düzelecek mi kontrol edin.
09/09/2024, 01:47

atoykan

Access’ten tablonuzu Sql Server’a export ederken otomatik sayı alanı Sql Server'da Identity özelliğiyle eşlenmediği için sorun yaşıyorsunuz ve kayıt ekleyememenizin nedeni de bu. Access tablolarınızdaki AutoNumber alanı Sql Server'a aktarılırken bu alanın Identity olarak belirlenmesi gerekir lakin çoğunlukla bu ayarın taşınması sırasında manuel bir işlem yapmanız gerekebilmektedir.
SQL Server Management Studio (SSMS(' yu açın ve tablonuzu düzenlemek için sağ tıklayıp Design (Tasarım) seçeneğini seçin ve Accessdeki otomatik sayı alanınızı bularak bu alanın özellikler kısmında Identity Specification özelliğini Yes yapın. Is Identity: Yes olarak ayarladığınızda, bu alan otomatik olarak sayılır ve her yeni kayıt eklendiğinde bu alan değeri bir artar. Ancak SSMS üzerinden tabloyu tasarım ekranında değiştiremiyorsanız :
  1. Yeni tablo oluşturup Identity tanımlayın. Bunu aşağıdakine benzer bir Sql kodu ile yapabilirsiniz
    CREATE TABLE YeniTablo (ID INT IDENTITY(1,1) PRIMARY KEY,
        Ad VARCHAR(100),
        Soyad VARCHAR(100));

  2. Bu adımda eski tablodan verilerinizi oluşturduğunuz yeni tabloya
    INSERT INTO YeniTablo (Ad, Soyad)
    SELECT Ad, Soyad FROM EskiTablo;
    gibi Sql kodu ile aktarın ve sorunsuz aktarım sonrasında eski tablonuzu drop ile silerek oluşturduğunuz yeni tablonuzu mimari ve algoritmanıza uygun şekilde eski tablo adınızı alacak şekilde
    DROP TABLE EskiTablo;
    EXEC sp_rename 'YeniTablo', 'EskiTablo';
    kodu ile yeniden adlandırabilirsiniz. Bu işlemler sonunda Sql Serverdaki tablonuzun Identity özelliğindeki sorunu aşmış olacağınızdan Accessde bağlı tablo olarak doğru yapılandırmışsanız sorunsuz olarak kullanmanız gerekir.
09/09/2024, 20:28

karaayhan

sayın atoykan konuyu gayet iyi anlamış ve çözümlemişsiniz ancak
tablomda 100'e yakın alan ismi var 225 bin kayıt var
sql kodu yazmak tablolara ekleme yaptırmaktan daha pratik bir çözüm yok mu
yani aktarılmış tabloya yeni alan eklediğimde dahi otomatik sayı olmuyor
09/09/2024, 20:51

atoykan

Hayır bunun daha kolay yolu yok. 225bin kayıt Sql Server için hiçbir şey.

Imigration işlemleri bu yüzden zahmetli ve pahalı hizmetlerdir. Siz Access'den Sql servera taşıma işlemi ile en kolay olanını yapıyorsunuz.
09/09/2024, 21:40

karaayhan

(09/09/2024, 20:28)karaayhan yazdı: sayın atoykan konuyu gayet iyi anlamış ve çözümlemişsiniz ancak
tablomda 100'e yakın alan ismi var 225 bin kayıt var
sql kodu yazmak tablolara ekleme yaptırmaktan daha pratik bir çözüm yok mu
yani aktarılmış tabloya yeni alan eklediğimde dahi otomatik sayı olmuyor

pratik çözümü buldum ihtiyacı olan olursa diye paylaşıyorum

Bunu uygulamak için SSMS de kullanılabilir. Araçlar > Seçenekler > Tasarımcılar > "Tablo yeniden oluşturmayı gerektiren değişiklikleri kaydetmeyi engelle" seçeneğinin işaretini kaldırın. BTW bu oldukça büyük tablolar için önerilmez.
1 2