C# - MS SQL tárolt eljárások

MS SQL tárolt eljárások 9. rész

forráskód letöltése
Egy MS SQL adatbázis rengeteg objektumot tartalmaz, amelyekről időnként jó lenne némi információt szerezni. Erre több lehetőségünk van, mivel az MS SQL számos olyan tárolt eljárást tartalmaz, amelyek kifejezetten az objektumok adatainak lekérdezésére szolgálnak. Ebben a részben most egy olyan tárolt eljárást mutatunk be, amely általánosan használható akár táblák, oszlopok, adattípusok, vagy más egyéb objektumok adatainak lekérdezésére.
Az objektumokról információt az sp_help tárolt eljárással szerezhetünk. Vannak persze ezen kívül is olyan eljárások, amelyekkel egy-egy adott objektum adatairól kaphatunk részletes tájékoztatást.
Ezzel az eljárással információkat kaphatunk az adatbázis objektumairól (sysobjects tábla), vagy az adattípusokról.
sp_help [ [ @objname = ] name ]
Paramétere csak egy van, de azt sem kötelező megadni:
objname
Annak az objektumnak a neve, amelyről információkat szeretnénk kérni. Az eljárás jellemzője, hogy több eredménylistát ad vissza. Ha paraméter nélkül futtatjuk az eljárást, akkor egy listát kapunk az adatbázis objektumairól az alábbi formátumban:
Mező Típus Leírás
Name nvarchar(128) Az objektum neve.
Owner nvarchar(128) A tulajdonos neve.
ObjectType nvarchar(31) Az objektum típusa.
Ha paraméterként egy adattípus nevét adtuk meg, akkor az alábbi listát kapjuk eredményül:
Mező Típus Leírás
Type_name nvarchar(128) az adattípus neve
Storage_type nvarchar(128) SQL szerver típus neve
Length smallint az adattípus fizikai mérete bájtban
Prec int precizitás (számjegyek száma)
Scale int a tizedes pont utáni számjegyek száma
Nullable varchar(35) a NULL érték engedélyezett-e
Default_name nvarchar(128) a típus alapértelmezett neve (NULL, ha nincs ilyen)
Rule_name nvarchar(128) a típusra vonatkozó szabály neve (NULL ha nincs ilyen)
Collation sysname karakterkészlet
A lekérdezett objektum típusától függően az sp_help eljárás további eredménylistákat is készít. Ha a lekérdezett objektum egy rendszertábla, tábla vagy nézet, akkor az alábbi listákat is megkapjuk:
  • Az oszlopok adatait tartalmazó lista
Mező Típus Leírás
Column_name nvarchar(128) az oszlop (mező) neve
Type nvarchar(128) a mező típusa
Computed varchar(35) kalkulált mező-e („yes” igen, „No” nem)
Length int mező hossza bájtban
Prec char(5) percízitás
Scale char(5) tizedesjegyek száma
Nullable varchar(35) NULL értéket tartalmazhat-e („yes” vagy „no”)
TrimTrailingBlanks varchar(35) a bevezető szóközöket levágja-e („yes” vagy „no”).
FixedLenNullInSource varchar(35) csak a visszafelé kompatibilitás miatt
Collation sysname karakterkészlet
  • Az automatikusan egyedi értéket kapó (identity) mezők adatait tartalmazó lista:
Mező Típus Leírás
Identity nvarchar(128)a mező neve
Seed numeric az oszlophoz tartozó kezdőérték
Increment numeric az új érték ennyivel tér el az előző értéktől
Not For Replication int lehet-e két egyforma érték ugyanebben az oszlopban (1 = igen, 0 = nem)
  • További adatok az oszlopokról
Mező Típus Leírás
RowGuidCol sysname GUID típusú oszlopok neve
  • Adatok a fájlcsoportokról
Mező Típus Leírás
Data_located_on_filegroup nvarchar(128) a fájlcsoport, amiben az adatok találhatók (elsődleges, másodlagos, vagy tranzakciós napló).
  • Információk az indexekről
Mező Típus Leírás
index_name sysname az index neve
index_description varchar(210) index leírása
index_keys nvarchar(2078) az indexben szereplő oszlopok nevei
  • Információk a megszorításokról (az adatokra vonatkozó szabályokról)
Mező Típus Leírás
constraint_type nvarchar(146) a megszorítás típusa
constraint_name nvarchar(128) neve
delete_action nvarchar(9) a DELETE művelet hogyan viselkedik: No Action, CASCADE, vagy N/A.
(csak a FOREIGN KEY-hez tartozó megszorításoknál)
update_action nvarchar(9) mint a delete_action, de az UPDATE műveletnél.
status_enabled varchar(8) a megszorítás engedélyezett-e, vagy sem (Enabled, Disabled vagy N/A) status_for_replication varchar(19) a megszorítás sokszorozható
constraint_keys nvarchar(2078) a megszorítást használt oszlopok nevei
  • Hivatkozott objektumok listája
Mező Típus Leírás
Table is referenced by nvarchar(516) a táblára hivatkozó objektum
Ha a lekérdezett objektum egy tárolt eljárás, akkor az alábbi listát kapjuk:
Mező Típus Leírás
Parameter_name nvarchar(128) tárolt eljárás paraméter neve
Type nvarchar(128) tárolt eljárás paraméter típusa
Length smallint a fizikai tároláshoz szükséges maximális méret bájtban
Prec int precizitás (számjegyek maximális száma)
Scale int a tizedesjegyek száma
Param_order smallint a paraméter sorszáma

MS SQL tárolt eljárások cikksorozat