EXEC etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
EXEC etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

8 Aralık 2012 Cumartesi

T-SQL de sp_helptext System Prosedürünün kullanılması

  • sp_helptext prosedürü bizim tanımladığımız yada sistemde bulunan objelerin tanımlamalarını text formatında gösterir.
  • Böylece istediğimiz objenin tüm içeriğini nerede olduğunu aramadan Örneğimizle direk alabiliriz.
SÖZ DİZİMİ:
sp_helptext '@objname'

USE NORTHWIND
GO
EXEC
sp_helptext 'Ten Most Expensive Products'
GO



2 Aralık 2012 Pazar

T-SQL'de sp_help System Prosedürünün Kullanımı

  • Genel olarak sistemde bulunan bir tablo hakkında ayrıntılı bilgi almamızı sağlar.
SÖZ DİZİMİ:

EXEC sp_help '@objname'

A. Bütün nesneler hakkında bilgi almak için;
  • Animal veritabanındaki herbir objenin bilgilerini listeler.
USE Animals

exec sp_help


B. İstenilen Obje hakkında bilgi almak için;

Örneğimiz Animals veritabanındaki Kuslar tablosu ile ilgili bilgileri getirir.

USE Animals

exec sp_help 'Kuslar'


NOT:F1 tuşuyla bunu hazır olarak kullanabilirsiniz.

1 Aralık 2012 Cumartesi

T-SQL'de sp_rename System Prosedürünün Kullanılması

  •  SQL de nesnelerimizin adlarını değiştirmek için sp_rename sistem procedürünü kullanılırız.
SÖZ DİZİMİ:

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.
exec sp_rename 'Kuslar.Name','Adı','COLUMN'

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.
 exec sp_rename 'Kuslar.BirdId', 'KusNo','INDEX'


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.

11 Ağustos 2012 Cumartesi

Stored Procedure Tipleri ve Genel Yapısı

     1-) Stored Procedure Tipleri

  • Extended Stored Procedure :  Genellikle *.dll şeklinde derlenmiş prosedürlerdir.
  • CLR Stored Procedure : SQL Server 2005’den itibaren CLR ortamındaki herhangi bir dili kullanarak kodladığımız stored procedure’lerdir.
  • Sistem Stored Procedure : Genellikle sp_ ön eki ile başlarlar ve hepsi master veri tabanında tutulan stored procedure'ler.
  • Kullanıcı Tanımlı Stored Procedure : Programcının yani bizim programladığımız stored procedure'lerdir.

     2-) Stored Procedure'lerin Genel Yapısı

CREATE  PROCEDURE or CREATE PROC  prosedür_adı
[ WITH Seçenekleri ]
AS
               SQL ifadeleri
GO




Açıklama:  Yukarıda gördüğümüz gibi Create Proc veya Create Procedure deyimi ile başlıyoruz ve prosedürümüzün ismini yazıyoruz. WITH seçeneği ile Stored procedure de bulunan kaynak kodlarını gizlemek için kullanıyoruz. WITH kullanımı zorunlu değildir.Create Procedure ile AS deyimleri arasına parametreli stored prosedürler için değişken tanımlaması yapılır. Örnek olarak ' @ogrencino int ' gibi...  Parametresiz prosedürler için herhangi bir tanımlama yapılmaz, AS yazılarak devam edilir. AS’den sonra prosedürün içine yazacağımız SQL ifadelerini yazarız ve GO deyimini de ekleyerek prosedürümüzü tamamlamış oluruz.

Not: GO deyimi zorunlu değildir ama programı ciddi hatalardan kurtarmaktadır.

Daha sonra Procedure 1 kere çalıştırmanız (F5) yapmanız yeterlidir. Stored Procedure'ümüzü tekrar çağırmak istediğimizde aşağıdaki komutu çalıştırmamız yeterlidir.

         EXEC prosedür_adı  


Stored Procedure'ler SQL Serverda aşağıdaki konumda bulunmaktadır.