MsSql - Sistem Tabloları İle Çalışmak
Dokumanın Forum Konusu Linktedir : http://www.tahribat.com/Forum-Dokuman-Mssql-Sistem-Tablolari-Ile-Calismak-148988/
Sistem tabloları : Sistem ve Nesneler hakkındaki veri tabanına ait bilgileri Metadata bilgisini tutarlar. Metadata bilgilerini depolayan sistem tablolarına ait yığınları ise veri tabanı kataloğu saklar.
Sistem kataloğu ise; yalnızca MasterDB'de bulunur ve tüm sistem ve diğer veritabanlarına ait tüm Medata bilgilerini depolayan sistem tablolarını tutmaktır. Sistem tablolarında değişiklik yapmak için
stored procedure, function ve information schema views'lerden yararlanılır.
Öncelikle hangi sistem tablosu nerede yer alıyor, görevleri nelerdir kısaca değinip ardından en çok kullanılan birkaç sistem tablosuna ait sorguları anlatacağım.
Sysdatabases | Master veri tabanıında yer alır ve SQL Server üzerindeki her bir veri tabanı için satır içerir. |
Syslogins | Master veri tabanında yer alır ve SQL Server'a bağlanmak için gereken login hesaplarını içerir. |
Sysmessages | Master veri tabanında yer alır ve SQL Server'ın verebileceği hata mesajını içerir. |
Sysalerts | MSDB veri tabanında yer alır ve satır satır uyarı mesajlarını içerir. |
Syscategories | MSDB veri tabanında yer alır ve SQL Server Management Studio işleri, uyarıları ve operatörleri kaydetmek amacıyla kullanılan kategorileri içerir. |
Sysdownloadlist | MSDB veri tabanında yer alır ve tüm hedef sunucular için dowload talimatlarının sırasını içerir. |
Sysjobactivity | MSDB veri tabanında yer alır ve anlık SQL Server Agent'a ait işleyişi kontrol eder ve durumu hakkındaki bilgileri içerir. |
Sysjobhistory | MSDB veri tabanında yer alır ve SQL Server Agent tarafından planlanmış işlerin uygulaması hakkındaki bilgileri içerir. |
Sysjobs | MSDB veri tabanında yer alır ve SQL Server Agent tarafından planlanmış işlerle ilgili bilgileri depolar. |
Sysjobschedules | MSDB veri tabanında yer alır ve SQL Server Agent tarafından gerçekleştirilecek işlerin plan bilgilerini içerir. |
Sysjobservers | MSDB veri tabanında yer alır ve belirli bir iş için, bir yada daha fazla hedef sunucu arasındaki tüm bağların bilgilerini içerir. |
Sysjobsteps | MSDB veri tabanında yer alır ve SQL Server Agent tarafından tamamlanmak üzere olan bir işin her aşamasıyla olan bilgileri içerir. |
Sysjobstepslogs | MSDB veri tabanında yer alır ve günlük bilgilerini içerir. |
Sysmail_allitems | MSDB veri tabanında yer alır ve database mail tarafından işlenmiş mesajları içerir. |
Sysmailevent_log | MSDB veri tabanında yer alır ve database mail sistemi tarafından geri çevrilen her windows yada SQL sunucusu mesajını içerir. |
Sysmail_faileditems | MSDB veri tabanında yer alır ve başarısız durumdaki her data mail mesajını içerir. |
Sysmail_mailattachments | MSDB veri tabanında yer alır ve data mail'a iliştirilen ekleri içerir. |
Sysmail_sentitems | MSDB veri tabanında yer alır ve database mail tarafından gönderilen her bir mesajı içerir. |
Sysmail_unsentitems | MSDB veri tabanında yer alır ve ''GÖNDERİLEMEDİ'' veya ''TEKRAR DENENİYOR'' durumundaki data mail mesajını içerir. |
Sysnotifications | MSDB veri tabanında yer alır ve bildirimleri içerir. |
Sysoperators | MSDB veri tabanında yer alır ve her bir SQL Server Agent operatörünü saklar. |
Sysproxies | MSDB veri tabanında yer alır ve SQL Server Agent yetkili hesaplarıyla ilgili bilgileri içerir. |
Sysproxylogin | MSDB veri tabanında yer alır ve her SQL Server Agent yetkili hesabıyla ilişkilendirilmiş SQL Server oturumunu kaydeder. |
Sysproxysubsystem | MSDB veri tabanında yer alır ve her yetkili hesabıyla kullanılan SQL Server alt sistemini kaydeder. |
Sysschedules | MSDB veri tabanında yer alır ve SQL Server Agent zamanlanmış görevlerle ilgili bilgileri içerir. |
Syssessions | MSDB veri tabanında yer alır ve her SQL Server Agent oturumu için SQL Server Agent'in başlangıç tarihini içerir. |
Syssubsystems | MSDB veri tabanında yer alır ve mevcut SQL Server Agent üzerindeki alt sistemlerle ilgili bilgileri içerir. |
Systargetservergroupmembers | MSDB veri tabanında yer alır ve anlık çok sunuculu grupda listelenmiş grup üyelerini kaydeder. |
Systargetservergroups | MSDB veri tabanında yer alır ve anlık çok sunuculu ortamda listelenmiş hedef sunucu gruplarını kaydeder. |
Systargetservers | MSDB veri tabanında yer alır ve anlık çok sunuculu domain'de listelenmiş hedef sunucuları kaydeder. |
Systaskids | MSDB veri tabanında yer alır ve SQL Server'ın önceki sürümlerinde oluşturulmuş görevlerle, güncel Microsoft SQL Server Management Studio'daki işler arasındaki eşleştirmeleri içerir. |
Sysaltfiles | Tüm veri tabanlarında yer alır ve özel durumlarda veri tabanında ki dosyalara karşılık gelen satırlar içerir. |
Syscacheobjects | Tüm veri tabanlarında yer alır ve ön bellekle ilgili bilgiler içerir. |
Syscharsets | Tüm veri tabanlarında yer alır ve SQL Server 2005'den itibaren veri tabanı motoru tarafından kullanılmak üzere karakter katarlarını tutar. |
Syscolumns | Tüm veri tabanlarında yer alır ve veri tabanı tablolarındaki her sütunu satıra çevirir. |
Syscomments | Tüm veri tabanında yer alır ve veri tabanında tutulan her tablo, varsayılan değer, kural, varsayılan kısıtlama ve kontrol kısıtlaması için bilgi içerir. |
Sysconfigures | Tüm veri tabanında yer alır ve kullanıncı tarafından yapılmış konfigurasyon bilgilerini içerir. |
Sysconstraints | Tüm veri tabanında yer alır ve bu veri tabanındaki objeler ve bu objelerle ilgili kısıtları içerir. |
Syscurconfigs | Tüm veri tabanında yer alır ve geçerli kurulumun her girdi seçeneği için girdi içerir. |
Sysdepends | Tüm veri tabanında yer alır ve veri tabanındaki objelerle (tablo,işlem ve deklanşörler) tanımlarının içerdiği objeler arasındaki bağla ilgili bilgileri içerir. |
Sysdevices | Tüm veri tabanında yer alır ve ilgili veri tabanınna ait disk'deki vede bant'daki yedek dosya ile veri tabanındaki dosyalara ait bilgileri içerir. |
Sysfilegroups | Tüm veri tabanında yer alır ve veri tabanındaki her dosya gubuna ait bilgiyi içerir. Bu tabloda ama dosya grubu için enaz bir girdi mevcuttur. |
Sysfiles | Tüm veri tabanında yer alır ve veri tabanındaki her dosyaya ait bilgiyi içerir. |
Sysforeignkeys | Tüm veri tabanında yer alır ve veri tabanındaki tanım tablosunda bulunan foreign key kısıtlamalarıyla ilgili bilgileri içerir. |
Sysfulltextcatalogs | Tüm veri tabanında yer alır ve tüm metim katalogları hakkında bilgiler içerir. |
Sysindexes | Tüm veri tabanında yer alır ve aktif veri tabanındaki her tablo ve dizin için bilgi içerir. |
Sysindexkeys | Tüm veri tabanında yer alır ve veri tabanı dizinindeki anahtar veya kolonlar ile ilgili bilgileri içerir. |
Syslanguages | Tüm veri tabanında yer alır ve SQL Server 2005'den itibaren serverda mevcut olan tüm diller için bilgi içerir. |
Syslockinfo | Tüm veri tabanında yer alır. Beklemedeki, değişim halindeki ve kabul edilmiş tüm kilit değişiklikleriyle ilgili bilgileri içerir. |
Sysmembers | Tüm veri tabanında yer alır ve veri tabanı görevindeki her üyeye ait bilgiyi içerir. |
Sysobjects | Tüm veri tabanında yer alır ve ilgili veri tabanındaki her bir objeye ait bilgiyi içerir. |
Sysoledbusers | Tüm veri tabanında yer alır ve özel bağlı sunucuda her kullanıcı ve şifre eşleştirmesi için bilgileri içerir. |
Sysperfinfo | Tüm veri tabanında yer alır ve Windows Sistem Monitörü tarafından görüntülenebilen, SQL Server 2005'den itibaren performans ölçücü veri tabanı motor bilgilerini içerir. |
Syspermissions | Tüm veri tabanında yer alır. Veri tabanındaki kabul ve reddedilmiş tüm kullanıcı, grup ve görev izinleriyle ilgili bilgileri içerir. |
Sysprocesses | Tüm veri tabanında yer alır. SQL Server örneğinde geçerli tüm işlemlerle ilgili bilgileri içerir. |
Sysprotects | Tüm veri tabanında yer alır. GRANT ve DENNY komutlarıyla veri tabanındaki güvenlik hesaplarına verilen izinlerle ilgili bilgileri içerir. |
Sysreferences | Tüm veri tabanında yer alır. Veri tabanındaki ilişkili kolonlarla forgein key kısıtlama tanımlarının eşleştirmesini içerir. |
Sysremotelogins | Tüm veri tabanında yer alır. Microsoft SQL Server örneğinde stoklanmış işlemleri çağırmaya izinli tüm uzak kullanıcılara ait bilgi içerir. |
Sysservers | Tüm veri tabanında yer alır. Micrsoft SQL Server örneğinin OLE DB veri kaynağı olarak erişebildiği tüm sunuculara ait bilgi içerir. |
Systranschemas | Tüm veri tabanında yer alır. Karşılıklı yayınlanan makale ve reklamlardaki şemalarda yapılan değişiklikleri takip etmek için kullanılır. |
Systypes | Tüm veri tabanında yer alır. Veri tabanında kullanıcı tarafından tanımlanmış ve sistemde bulunan her türlü veri için bilgi tutar. |
Sysusers | Tüm veri tabanında yer alır. Her satırda bir NT kullanıcısı, NT grup, SQL Server kullanıcısı yada SQL rolü içerir. |
Şimdi ise bazı işlemlerde bize kolaylık sağlicak sorgulara bakalım.
SQL Server'daki kayıtlı tüm veri tabanı listesini almak için; | SELECT name FROM SYS.DATABASES |
Veri tabanına ait tabloların listesini almak için; | SELECT name FROM SYS.TABLES |
Veri tabanına kayıtlı tüm SP'lerin listesini almak için; | SELECT name FROM SYS.PROCEDURES |
Veri tabanına kayıtlı Views'lerin listesini almak için; | SELECT name FROM SYS.VİEWS |
Kayıtlı tüm Trigger'lerin listesini almak için; | SELECT * FROM SYS.TRİGGERS |
Belli bir tabloya ait Trigger'lerin listesini görmek için; | SP_HELPTRİGGER Products SP'sini çalıştırabilirsiniz |
Belli bir tabloya ait sütunları görmek için; | SP_COLUMNS Products SP'sini çalıştırabilirsiniz |
Belli bir tabloya ait sütuna ulaşmak için; | SELECT O.name FROM SYS.OBJECTS O INNER JOIN SYS.COLUMNS C ON C.Object_ID = O.Object_ID WHERE C.name LIKE '%ShipName%' |
SELECT OBJECT_NAME(object_id) AS [Table Name] FROM SYS.CLUMNS WHERE name LIKE '%ShipName%' | |
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.CLUMNS WHERE COLUMN_NAME LIKE '%ShipName%' | |
Tabloda kullanılan indexlerin listesini almak için; | sp_helpindex Products SP'sinden yararlanabilirsiniz. |
Umarım faydalı olur, herkese iyi çalışmalar...
Hit: 6322
Yazar: warlock