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.



