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...

Tarih:
Hit: 3316
Yazar: warlock



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.