merhaba arkadaşlar
Benim yeni ve halen üzerinde çalıştığım bir projem var. Bazen tablolar üzerinde değişiklik yapmam gerekiyor.
İndexi olmayan alanların eklenmesi/çıkartılmasını,ibexpert veya alter table komutları ile yapabiliyorum.
Ancak benim bazı tabloların primary keylerine 2.bir alan eklemem gerekiyor.
Ibexpret ile primary key yapısını değiştiremedim. Sanırım mesele tabloya bağlı stored prosedürlerin olması.
Tabloların içideki datalar çok önemli değil şuan için.
Fakat tabloları kullanan birçok stored proc var.
Bu sebeple bir tabloyu silip yeniden açmam, bütün sp'leri tekrar oluşturmamı gerektirecek.
Tabloların primary key yapısında değişiklik yapma ile ilgili sql komutu/yardımcı program önerisi olan varsa çok iyi olacak benim için.
Eminim birçok arkadaş içinde faydalı olur.
tablonun primary key'ini değiştirmem gerekli
Re: tablonun primary key'ini değiştirmem gerekli
Tablonun içindeki kayıtları tamamen silip değiştirmeyi deneyebilirsin.
Eğer yine de olmuyorsa Primary Key'in hangi constraint adı altında oluşturulduğunu bulup (eğer kendin bir isim vermediysen, sistem tablolarından bulabilirsin) "DROP CONSTRAINT XXXXX" diye önce primary key'i drop edip sonra yeniden istediğin primary key'i oluşturmalısın.
Eğer bu primary key'e bakan başka tablolarda foreign key tanımlaması varsa onları da öncelikle DROP etmelisin.
Eğer yine de olmuyorsa Primary Key'in hangi constraint adı altında oluşturulduğunu bulup (eğer kendin bir isim vermediysen, sistem tablolarından bulabilirsin) "DROP CONSTRAINT XXXXX" diye önce primary key'i drop edip sonra yeniden istediğin primary key'i oluşturmalısın.
Eğer bu primary key'e bakan başka tablolarda foreign key tanımlaması varsa onları da öncelikle DROP etmelisin.
Re: tablonun primary key'ini değiştirmem gerekli
Teşekkür ederim.
Aslında sizin söylediğiniz gibi constrainti silmeyi denemiştim. Fakat ibexpert programı bir hata mesajı veriyordu (firebird 2.0 kullanıyordum).
Dün işyerinde kullandığım makinaya firebird 2.1 programını kurdurm. Bir de Sqlly Development firmasının InterBase/Firebird Development Studio programını kurdum. Bu programın tablo düzenleme aracını kullanarak tabloyu istediğim gibi düzenledim. Ancak belki farklı teknikler uyguluyordur diye düşünmüştüm.
Bugün sizin verdiğiniz mesaja göre tekrar bir deneme yaptım sorun çıkmadı.
ALTER TABLE TBL1 DROP CONSTRAINT INTEG_301
ALTER TABLE TBL1 ADD TEMPROW VARCHAR(1) DEFAULT 'H' NOT NULL
ALTER TABLE TBL1 ADD PRIMARY KEY (TEMPROW,ID)
Aslında sizin söylediğiniz gibi constrainti silmeyi denemiştim. Fakat ibexpert programı bir hata mesajı veriyordu (firebird 2.0 kullanıyordum).
Dün işyerinde kullandığım makinaya firebird 2.1 programını kurdurm. Bir de Sqlly Development firmasının InterBase/Firebird Development Studio programını kurdum. Bu programın tablo düzenleme aracını kullanarak tabloyu istediğim gibi düzenledim. Ancak belki farklı teknikler uyguluyordur diye düşünmüştüm.
Bugün sizin verdiğiniz mesaja göre tekrar bir deneme yaptım sorun çıkmadı.
ALTER TABLE TBL1 DROP CONSTRAINT INTEG_301
ALTER TABLE TBL1 ADD TEMPROW VARCHAR(1) DEFAULT 'H' NOT NULL
ALTER TABLE TBL1 ADD PRIMARY KEY (TEMPROW,ID)