- SQL de nesnelerimizin adlarını değiştirmek için sp_rename sistem procedürünü kullanılırız.
exec sp_rename @object_name, @new_object_name, @object_type
1-) Tablo adının değiştirilmesi
SELECT object_id('Birds')
exec sp_rename 'Birds','Kuslar'
SELECT object_id('Birds')
SELECT * FROM Birds
Invalid Object Name 'Birds' hatası döndürecektir.
SELECT * FROM Kuslar
Sorgusunu çalıştırarsınız, Birds tablosundan taşıdığımız kolonları göreceksiniz.
İçerisinde data olduğu için kayıtlı verileri görebilirsiniz.
2-) Kolon adının değiştirilmesi :
- Biraz önce create ettiğimiz ve adını Kuslar olarak değiştirdiğimiz tablonun name kolonunu Adı olarak değiştirelim..
- sp_rename prosedürünün bizim şimdiye kadar kullanmadığımız, default u 'object' olan bir parametresi daha var.
- Kolonlar, sysobjects de yer almazlar ve birer database objesi değillerdir ve tablo ismi olmadan da birşey ifade etmezler.
- x tablonun y kolonu diye saklanırlar ve çağırılırlar. Bu yüzden ismini değiştirdiğimiz nesnenin kolon tipinde olduğunu ve hangi tabloya ait olduğunu da söylememiz gerekir.
Kuslar tablomuza ait olan name isimli kolonu Adı olarak değiştirdik.
SELECT * FROM Kuslar
sorgusunu çağırarak kolon adının değiştiğini görebiliriz.
3-) Index değerinin değiştirilmesi
- sp_rename ile indexleri de yeniden adlandırabiliriz.
NOT: sp_rename ile syscomments de bulunan text alanındaki nesne ismini değiştiremeyiz.
Bu yüzden 'function','stored procedure','trigger' ve 'view' gibi programlanabilir nesneler için sp_rename i kullanmamalıyız.
Bu tür nesneler için sp_rename yerine önce bu nesleri drop(silme) edip sonra istediğimiz yeni isim ile yeniden create(oluşturma) edebiliriz.
NOT: Oluşturulan her bir nesne nin bir id si vardır ve sql serverda nesneler id leri ile saklanırlar.
object_id system function ını kullanarak objenin id sini öğrenebilir ve varolup olmadığından da böylecek emin olabiliriz.
object_id (objectname) null döndürüyorsa o isimde nesne ilgili database de yok demektir.
Hiç yorum yok:
Yorum Gönder