Sistem tabloları, veritabanlarındaki sistem ve nesneler hakkındaki bilgileri içerir ve metadata olarak adlandırılır. Metadata veri hakkındaki bilgilerdir.
Veritabanı Kataloğu
Her bir veritabanı, belirli veritabanı hakkındaki metadataları depolayan sistem tablolarını yığınlarını içerir. Sistem tabloları yığını veritabanı kataloğudur.
Sistem Kataloğu
Sadece Master veritabanında bulunur. Tüm sistem veya diğer tüm veritabanları hakkındaki metadataları depolayan sistem tablolarını içerir. Sistem tabloları sys ön eki ile başlar.
- Syslogins: SQL Server'a bağlanabilen her bir giriş hesabı için bir satır içerir.
- Sysmessages: SQL Server'ın döndürebildiği her bir sistem hatası için bir satır içerir.
- Sysdatabases: SQL Server üzerindeki her bir veritabanı için bir satır içerir.
- Sysusers: Bir veritabanı üzerindeki her bir SQL Server rolü, SQL Server kullanıcısı, WinNT grubu, WinNT kullanıcısı için bir satır içerir.
- Sysobjects: Bir veritabanındaki her bir nesne için bir satır içerir.
Sistem Tabloları:
Sistem tabloları; sistem ve tablolarla ilgili bilgi depolar ki bu bilgiye metadata adı verilir. Her veritabanı, o veritabanı ile ilgili metadata tutar; o veritabanındaki sistem tablolarına veritabanı katoloğu adı verilir. Sistem katoloğu ise sadece Master veritabanında bulunur ve tüm sistemle ilgili ve diğer veritabanları ile ilgili metadata'yı tutar. Sistem tabloları sys ön eki ile başlar (syslogins,sysmessages gibi)
Sistem tablosu | Veritabanı | Fonksiyon |
sysdatabases | Master | Her satırda bir veritabanı içerir. |
syslogins | Master | Her satırda SQL Server'a bağlanmak için bir login hesabı içerir. |
sysmessages | Master | Her satırda SQL Server'ın verebileceği bir hata mesajı ya da uyarı içerir. |
sysalerts | MSDB | Her uyarı için bir satır içerir. |
syscategories | MSDB | SQL Server Management Studio tarafından; işleri, uyarıları ve operatörleri kaydetmek amacıyla kullanılan kategorileri içerir. |
sysdownloadlist | MSDB | Tüm hedef sunucular için download talimatlarının sırasını içerir. |
sysjobactivity | MSDB | O anki SQL Server Agent işinin etkinliği ve durumu hakkındaki bilgileri içerir. |
sysjobhistory | MSDB | SQL Server Agent tarafından planlanmış işlerin uygulaması hakkındaki bilgileri içerir. |
sysjobs | MSDB | SQL Server Agent tarafından tamamlanmış olması gereken her planlanmış iş ile ilgili bilgileri depolar. |
sysjobschedules | MSDB | SQL Server Agent tarafından tamamlanmış olması gereken işlerin plan bilgilerini içerir. |
sysjobservers | MSDB | Belirli bir iş ile bir ya da daha fazla hedef sunucu arasındaki tüm bağların bilgilerini içerir. |
sysjobsteps | MSDB | SQL Server Agent tarafından tamamlanmak üzere olan bir işin her aşamasıyla ilgili bilgileri içerir. |
sysjobstepslogs | MSDB | İş aşamalarının günlükleriyle ilgili bilgileri içerir. |
sysmail_allitems | MSDB | Veritabanı Postası tarafından işlenmiş her mesaj için bir satır içerir. |
sysmailevent_log | MSDB | Veritabanı Posta Sistemi tarafından geri çevrilen her Windows ya da SQL Sunucusu mesajı için bir satır içerir. |
sysmail_faileditems | MSDB | Başarısız durumdaki her Veritabanı Posta mesajı için bir satır içerir. |
sysmail_mailattachments | MSDB | Veritabanı Postasına iliştirilen her ek için bir satır içerir. |
sysmail_sentitems | MSDB | Veritabanı Postası tarafından gönderilen her mesaj için bir satır içerir. |
sysmail_unsentitems | MSDB | “Gönderilemedi” veya “tekrar deneniyor” durumundaki her Veritabanı Posta Mesajı için bir satır içerir. |
sysnotifications | MSDB | Her bildirim için bir satır içerir. |
sysoperators | MSDB | Her SQL Server Agent operatörü için bir satır içerir. |
sysproxies | MSDB | SQL Server Agent yetkili hesaplarıyla ilgili bilgileri içerir. |
sysproxylogin | MSDB | Her SQL Server Agent yetkili hesabıyla ilişkilendirilmiş SQL Server oturumunu kaydeder. |
sysproxysubsystem | MSDB | Her yetkili hesabıyla kullanılan SQL Server alt sistemini kaydeder. |
sysschedules | MSDB | SQL Server Agent iş planlarıyla ilgili bilgileri içerir. |
syssessions | MSDB | Her SQL Server Agent oturumu için SQL Server Agent’ın başlagıç tarihini içerir. |
syssubsystems | MSDB | Mevcut tüm SQL Server Agent yetkili alt sistemlerle ilgili bilgileri içerir. |
systargetservergroupmembers | MSDB | O anda çok sunuculu grupta listelenmiş olan hedef sunucuları kaydeder. |
systargetservergroups | MSDB | O anda çok sunuculu ortamda listelenmiş hedef sunucu gruplarını kaydeder. |
systargetservers | MSDB | O anda çok sunuculu işlem etki alanında listelenmiş hedef sunucuları kaydeder. |
systaskids | MSDB | SQL Server’ın önceki sürümlerinde oluşturulmuş görevlerle, güncel Microsoft SQL Server 2005 Management Studio’daki işler arasındaki eşleştirmeleri içerir. |
sysaltfiles | Hepsinde | Özel durumlarda, veritabanındaki dosyalara karşılık gelen satırlar içerir. |
syscacheobjects | Hepsinde | Önbelleğin nasıl kullanıldığına dair bilgiler içerir. |
syscharsets | Hepsinde | SQL Server 2005 veritabanı motoru tarafından kullanılmak üzere her karakter için bir satır içerir ve bunları sıralar. |
syscolumns | Hepsinde | Veritabanında kayıtlı her işlem parametresini ve tablolardaki her sütunu satıra çevirir. |
syscomments | Hepsinde | Veritabanında tutulan her tablo, kural, varsayılan değer, varsayılan kısıtlaması ve kontrol kısıtlaması için girdi içerir. |
sysconfigures | Hepsinde | Kullanıcı tarafından tanımlanmış her kurulum seçeneği için bir satır içerir. |
sysconstraints | Hepsinde | Veritabanında yer alan objeler ve bu objelerle ilgili kısıtlamaların eşleştirmesini içerir. |
syscurconfigs | Hepsinde | Geçerli kurulumun her seçeneği için bir girdi içerir. |
sysdepends | Hepsinde | Veritabanındaki objelerle (tablo, işlem ve deklanşörler) tanımlarının içerdiği objeler arasındaki bağla ilgili bilgiler içerir. |
sysdevices | Hepsinde | Diskteki her yedek dosyası, banttaki her yedek dosyası ve veritabanındaki her dosya için bir satır içerir. |
sysfilegroups | Hepsinde | Veritabanındaki her dosya grubu için bir satır içerir. Bu tabloda ana dosya grubu için en az bir girdi mevcuttur. |
sysfiles | Hepsinde | Veritabanındaki her dosya için bir satır içerir. |
sysforeignkeys | Hepsinde | Veritabanındaki tanım tablosunda bulunan dış anahtar (foreign key) kısıtlamalarıyla ilgili bilgileri içerir. |
sysfulltextcatalogs | Hepsinde | Tüm metin katalogları hakkında bilgiler içerir. |
sysindexes | Hepsinde | Aktif veritabanındaki her tablo ve her dizin için bir satır içerir. |
sysindexkeys | Hepsinde | Veritabanı dizinindeki anahtarlar veya kolonlar ile ilgili bilgileri içerir. |
syslanguages | Hepsinde | SQL Server 2005’te mevcut olan tüm diller için bir satır içerir. |
syslockinfo | Hepsinde | Beklemedeki, değişim halindeki ve kabul edilmiş tüm kilit değişiklikleriyle ilgili bilgileri içerir. |
sysmembers | Hepsinde | Veritabanı görevindeki her üye için bir satır içerir. |
sysobjects | Hepsinde | Her bir satırda o veritabanındaki objelerden birini içerir. |
sysoledbusers | Hepsinde | Özel bağlı sunucuda her kullanıcı ve şifre eşleştirmesi için bir satır içerir. |
sysperfinfo | Hepsinde | Windows Sistem Monitörü tarafından görüntülenebilen, SQL Server 2005’in performans ölçücü veritabanı motorunun gösterimini içerir. |
syspermissions | Hepsinde | Veritabanındaki kabul ve reddedilmiş tüm kullanıcı, grup ve görev izinleri ile ilgili bilgileri içerir. |
sysprocesses | Hepsinde | Microsoft SQL Server örneğinde geçerli tüm işlemlerle ilgili bilgileri içerir. |
sysprotects | Hepsinde | GRANT ve DENY komutları yardımıyla veritabanındaki güvenlik hesaplarına verilen izinlerle ilgili bilgileri içerir. |
sysreferences | Hepsinde | Veritabanındaki ilişkili kolonlarla DIŞ ANAHTAR (FOREIGN KEY) kısıtlama tanımlarının eşleştirmesini içerir. |
sysremotelogins | Hepsinde | Microsoft SQL Server 2005 örneğinde stoklanmış işlemleri çağırmaya izinli tüm uzak kullanıcılar için bir satır içerir. |
sysservers | Hepsinde | Bir Microsoft SQL Server 2005 örneğinin OLE DB veri kaynağı olarak erişebildiği tüm sunucular için bir satır içerir. |
systranschemas | Hepsinde | Karşılıklı yayımlanan makale ve reklamlardaki şemalarda yapılan değişiklikleri takip etmek için kullanılır. |
systypes | Hepsinde | Veritabanında, kullanıcı tarafından tanımlanmış ve sistemde bulunan her türlü veri için bir satır dönüştürür. |
sysusers | Hepsinde | Her satırda bir NT kullanıcısı, NT grup, SQL Server kullanıcsı ya da SQL rolü içerir. |
Sistem Tablolarında Değişiklik Yapma:
Sistem tablolarındaki bilgilerde değişiklik yapılmak istediğindiğinde 3 araç kullanılır:
System Stored Procedures (Sistem Saklı Yordamları); Veritabanındaki nesnelerde çalışırken kullandığımız transact-sql komutlar bütünüdür. Her bir saklı yordam çalıştırıldığında o saklı yordamı oluşturan komutlar çalışır ve böylece aynı iş tekrar yapılmak istendiğinde tekrar tekrar o komutlar yazılıp çalıştırılmak zorunda kalınmaz. Saklı yordamlar "sp_" ön eki ile başlar.
Örnek: Exec sp_help TABLE1
denirse TABLE1 ile ilgili tablo bilgileri görüntülenir.
Sistem Fonksiyonları; Transact SQL komutlarını kullanarak tablo sorgulamayı sağlar.
Örnek: SELECT USER_NAME(10)
dersek USER_NAME burada bir sistem fonksiyonudur ve 10 da ID'yi belirtir. İşlem sonunda ID'si 10 olan kullanıcı ismi elde edilir.
Information Schema Views (Bilgi Şeması Görünümleri); Bu görünümler o veritabanındaki tüm nesnelerle ilgili bilgiyi taşır.
Örnek: SELECT * FROM INFORMATION_SCHEMA.TABLES
dendiğinde o veritabanındaki tüm tabloların listesi ve ayrıntıları ekrana gelir.