sp_pkeys

28 03 2007

sp_pkeys hazır prosedürü bir tablo üzerindeki primary key bilgisini getirmek için kullanılır. Kullanımı :

sp_pkeys [ @table_name = ] name
[ , [ @table_owner = ] owner]
[ , [ @table_qualifier = ] qualifier]

şeklindedir.

– @table_name, primary key bilgileri alınacak tablonun ismini belirtir.

– @table_owner, table_name ile belirtilen tablonun sahip bilgisini belirtir.

– @table_qualifier, table_name ile belirtilen tablonun bulunduğu veri tabanının ismin belirtir.

Prosedürün çalıştırılması sonucu gelen bilgiler :

table_qualifier : tablonun bulunduğu veritabanı ismini getirir.

table_owner : tablonun sahip bilgisini getirir.

table_name : primary key bilgisi görüntülenecek tablo ismini getirir.

column_name : primary key olan alanın ismin getirir.

key_seq : primary key olan alanın, çok kolonlu primary keydeki sıra numarasını getirir.

pk_name : primary key in ismini getirir.





sp_fkeys

28 03 2007

sp_fkeys sistem prosedürü, bulunulan veri tabanındaki primary key – foreign key ilişkilerini göstermek için kullanılır. Kullanımı :

sp_fkeys [ @pktable_name = ] pktable_name
[ , [ @pktable_owner = ] pktable_owner]
[ , [ @pktable_qualifier = ] pktable_qualifier]
{ , [ @fktable_name = ] fktable_name}
[ , [ @fktable_owner = ] fktable_owner]
[ , [ @fktable_qualifier = ] fktable_qualifier]

şeklindedir. pktable_name e yada fktable_name e mutlaka bir tablo ismi atanmalıdır.

– @pktable_name, ilişki kurulan alanı primary key olarak bulunduran tablo ismini belirtmek için kulllanılır.

– @pktable_owner, pktable_name de belirtlen tablonun sahibini belirtmek içn kullanılır, belirtilmezse Sql server da oturumu açmış olan kullanıcı ile işlem yapılır.

– @fktable_name, ilişki kurulan alanı foreign key olarak bulunduran tablo ismini belirtmek için kullanılır.

– @fktable_owner, fktable_name de belirtilen tablonun sahibini belirtmek için kullanılır, belirtilmezse Sql server da oturumu açmış olan kullanıcı ile işlem yapılır.

– @fktable_qualifier, sql server da işlem yapılan talonun bulunduğu database bilgisini gösterir.

Sorgunun çalıştırılması sonucu gelen bilgiler :

pktable_qualifier : pktable_name ile belirtilen tablonun içinde bulunduğu veritabanının ismi.

pktable_owner : pktable_name ile belirtilen tablonun sahibini gösterir.

pktable_name : primary – foreing key ilişkisindeki alanı primary key olarak bulunduran tablo bilgisini getirir.

pkcolumn_name : pktable_name ile belirtilen tablodaki ilişki kurulan alanın adını getirir.

fktable_qualifier : fktable_name ile belirtilen tablonun içinde bulunduğu veritabanının ismini geitirir.

fktable_owner : fktable_name ile belirtilen tablonun shaip bilgisini getirir.

fktable_name : primary – foreing key ilişkisindeki alanı foreign key olarak bulunduran tablo bilgisini getirir.

fkcolumn_name : fktable_name ile belirtilen tablodaki ilişki kurulan alanın adını getirir.

key_seq : anahtar olan alanın, çok kolonlu primary key deki sıra numarasını getirir.

update_rule : update işlemi sırasında foreign key e uygulanacak işlem bilgisini getirir. 0 ve 1 değerlerini alır. 0 cascade, 1 no rule anlamındadır.

delete_rule : delete işlemi sırasında foreign key e uygulanacak işlem bilgisini getirir. 0 ve 1 değerlerini alır. 0 cascade, 1 no rule anlamındadır.

fk_name : foreign key in adını getirir.

pk_name : primary key in adını getirir.

Eğer pktable_name belirtilmemiş, fktable_name belirtilmişse geri dönen bilgilerde fktable_name ile belirtilen tablodaki bütün foreign keyler ile ilgili bilgiler getirilir. Eğer pktable_name belirtilmiş, fktable_name belirtilmemişse pktable_name ile belirtilmiş tablonun herhangi bir alanını foreign key olarak kullanan tabloların bilgileri getirilir. Bu Prosedürün çalıştırılablimesi için public yetkiye sahip olmak gerekir. sp_fkeys, odbc deki sqlforeignkeys ile aynı işi yapar.





sp_databases

13 03 2007

Bu stored procedure serverdaki veri tabanlarını listelemek için kullanılır. çalıştırmak için public yetkiye ihtiyaç vardır. geri dönen tabloda bulunan değerler :

database_name : serverdaki veritabanı isimlerini listeler.

database_size : Veritabanının kilobyte cinsinden boyutunu verir.

remarks : sql server için null değer döndürür.

Örnek Kullanım :

sp_databases

Ekran Görüntüsü :

sp_databases.JPG





sp_columns

13 03 2007

Bu procedure çalışılan veri tabanı üzerinde belirtilen bir tablonun yada view ün kolon bilgilerini getirmek için kullanılır. çalıştırılabilmesi için public yetkiye sahip olmak gerekir. Yazım şekli

sp_columns [ @table_name = ] object
[ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]

5 parametre alabilir bunlar

1 – table_name : katalog bilgilerinin getirileceği tablo veya view ismini belirtir. yazılmazsa hata oluşur.

2 – table_owner : belirtilen tablo yada view ün sahibidir. default olarak null değer alır. owner belirtilmezse server i açan kullanıcı olarak işleme alınır.

3 – table_qualifier : tablonun bulunduğu veritabanının ismidir.

4 – column_name : herhangibir tablo veya view ün sadece bir kolonunun bilgileri görüntülenmek isteniyorsa belirtilir. kolon ismi belirtilmezse bütün kolonlar gelir

5 – odbcver : kullanılan odbc nin versiyonunu belirtir. 2 ve 3 değerlerini alabilir. default olarak 2 dir.

procedure ün çalıştırılması sonucu geri dönen tabloda bulunan alanlar ise :

1 – table_qualifier : tablonun yada view ün bululnduğu veritabanı bilgisini görüntüler

2 – table_owner : tablo yada view ün sahip bilgisini görüntüler.

3 – table_name : kullanılan tablonun yada view ün ismini görüntüler.

4 – column_name : tablo veya viewdeki kolon isimlerini listeler. eğer prosedüre parametre olarak kolon ismi gönderildiyse sadece belirtilen kolon ismi görülür.

5 – data_type : veri tipinin kodunu görüntüler. eğer kolonun veri tipi odbc kolon tiplerinden biri değilse geriye null değer gelir.

6 – type_name : kolon veri tipinin ismini yazar.

7 – precision : alana girilebilecek maksimum karakter sayısını gösterir (emin değilim)

8 – length : kolonun tasarımı sırasında belirtilen karakter sayısı

9 – scale : ondalık kısım için karakter sayısı

10 – radix : nümerik veri tipleri için sayı tabanı (sanırım 10 luk, 2 lik….. sistemler anlamında)

11 – nullable : alanın null olup olamayacağını belirtmek için kullanılan sayısal değer. null olabilirse 1, null olamazsa 0 değerini alır.

12 – remarks : bu alan herzaman null değer döndürür. (nedeni hakkında herhangi bir bilgi verilmemiş)

13 – column_def : kolonun default değerini gösterir. eğer kolon tasarımı sırasında bir default değer tanımlamamışsanız geriye null değer gelir.

14 – sql_data_type : kolonun sql veri tipini getirir. datetime ve interval veri tipleri hariç diğer tipler için değeri data_type kolonundaki değerle aynıdır.

15 – sql_datetime_sub : datetime ve interval veri tipleri için alt veri tipini gösterir. diğer veri tipleri için null değer döndürür.

16 – chat_octet_length : karakter veri tipi için maksimum uzunluğu bit türünden verir (emin değilim)

17 – ordinal_position : kolonun tablodaki sıra numarasını gösterir.

18 – is_nullable : eğer alan boş kalabilirse yes, boş kalamazsa no değerini gösterir.

19 – ss_data_type : sql server veri tipinin kod numarasını gösterir.

Örnek yazım :

sp_columns @table_name = employees





sp_column_privileges

12 03 2007

https://sadullahkeles.wordpress.com/2007/03/11/aciklama/

bu procedure geçerli veritabanındaki belli bir tablonun kolon hakları hakkında bilgi verir. genel kullanımı

sp_column_privileges [ @table_name = ] table_name
[ , [ @table_owner = ] table_owner]
[ , [ @table_qualifier = ] table_qualifier]
[ , [ @column_name = ] column]

şeklindedir 4 parametre alabilir.

1 – table_neme : katalog bilgilerinin alınacağı tablo ismini belirler

2 – table_owner : (eğer belirtilmemişse server a giriş yapılmış kullanıcı kullanılır) eğer kullanıcı tablo üzerinde yetkili ise tablonun alanları hakkındaki bilgiler görüntüleni, kullanıcı yetkili değilse boş tablo döner

3 – table_qualifier : Sql Server da bu alan veritabanı ismini göstermek için kullanılır.

4 – column_name : sadece tablonun belirtilen kolonunun bilgilerini almak için kullanılır. default olarak null dur. belirtilmediği durumlarda tablodaki tüm kolonların bilgileri getirilir.

bu stored procedure ün çalıştırılması sonucu geri dönen alanlar :

1 – table_qualifier : tablonun bulunduğu veritabanının ismini gösterir.

2 – table_owner : tablonun sahip bilgisini getirir.

3 – table_name : alanları listelenen tablonun ismini getirir.

4 – column_name : eğer procedure çalıştırılırken kolon ismi belirtilmemişse tablodaki bütün kolonları listeler, eğer kolon ismi belirtilmişse sadece belirtilen kolon ismini gösterir.

5 – grantor : kolonlar üzerindeki yetkileri dağıtan veritabanı kullanıcısı. bu kullanıcı genelde database_owner yada tablo üzerinde owner yetkisi verilmiş bir kullanıcıdır.

6 – grantee : kolon üzerinde yetkisi olan kullanıcı.

7 – privilege : kolon üzerindeki yetki türünü gösterir. kullanıcılar kolonlar üzerinde insert, update,seşect ve references yetkilerine sahip olabilir. kolon üzerinde select yetkisi olan bir kullanıcı tablodan veri çekebilir, update yetkisi olan bir kullanıcı verileri güncelleyebilir, insert yetkisi olan bir kullanıcı veri girişi yapabilir ve reference yetkisi olan bir kullanıcı kolonu başka bir tabloda foreignkey olarak kullanabilir.

8 – is_grantable : talbo üzerinde yetkili bir kullanıcının (grantee) başka kullanıcılara yetki verme izni olup olmayacağını gösterir. yes, no ve null değerlerini alablir.

örnek uygulama :

use northwind
EXEC sp_column_privileges Employees

ekran çıktısı :

Northwind dbo Employees Address dbo public DELETE NO

Northwind dbo Employees Address dbo dbo INSERT YES

Northwind dbo Employees Address dbo public INSERT NO