[FONT=Verdana, Arial, Helvetica, sans-serif]Sistem tabloları, sistem ve nesneler hakkındaki veritabanına ait bilgileri içeren ****data bilgisini tutarlar. ****data bilgilerini depolayan sistem tablolarına ait yığınları ise veritabanı kataloğu saklar. Sistem kataloğu ise yalnızca Master DB’de bulunur ve görevi tüm sistem ve diğer veritabanlarına ait tüm ****data 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. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Ö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ı inceleyeceğiz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdatabases: Master veritabınında yer alır ve SQL Server üzerindeki her bir veritabanı için bir satır içerir.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syslogins: Master veritabınında yer alır ve SQL Server’a bağlanmak için gereken login hesablarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmessages: Master veritabınında yer alır ve SQL Server’ın verebileceği hata mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysalerts: MSDB veritabınında yer alır ve satır satır uyarı mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscategories: MSDB veritabınında yer alır ve SQL Server Management Studio tarafından işleri, uyarıları ve operatörleri kaydetmek amacıyla kullanılan kategorileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdownloadlist: MSDB veritabınında yer alır ve tüm hedef sunucular için download talimatlarının sırasını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobactivity: MSDB veritabınında yer alır ve anlık SQL Server Agent’a ait işleyişi kontrol eder ve durumu hakkındaki bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobhistory: MSDB veritabınında yer alır ve SQL Server Agent tarafından planlanmış işlerin uygulaması hakkındaki bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobs: MSDB veritabınında yer alır ve SQL Server Agent tarafından planlanmış işlerle ilgili bilgileri depolar. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobschedules: MSDB veritabınında yer alır ve SQL Server Agent tarafından gerçekleştirilecek işlerin plan bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobservers: MSDB veritabınında yer alır ve belirli bir iş için bir ya da daha fazla hedef sunucu arasındaki tüm bağların bilgilerini içerir.
sysjobsteps: MSDB veritabınında yer alır ve SQL Server Agent tarafından tamamlanmak üzere olan bir işin her aşamasıyla ilgili bilgileri içerir.
sysjobstepslogs: MSDB veritabınında yer alır ve günlük iş bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_allitems: MSDB veritabınında yer alır ve database mail tarafından işlenmiş mesajları içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmailevent_log: MSDB veritabınında yer alır ve database mail sistemi tarafından geri çevrilen her Windows ya da SQL Sunucusu mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_faileditems: MSDB veritabınında yer alır ve başarısız durumdaki her data mail mesajını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_mailattachments: MSDB veritabınında yer alır ve data mail’a iliştirilen ekleri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_sentitems: MSDB veritabınında yer alır ve database mail tarafından gönderilen her bir mesajı içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_unsentitems: MSDB veritabınında yer alır ve "Gönderilemedi" veya "tekrar deneniyor" durumundaki data mail mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysnotifications: MSDB veritabınında yer alır ve bildirimleri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysoperators: MSDB veritabınında yer alır ve her bir SQL Server Agent operatörünü saklar.
sysproxies: MSDB veritabınında yer alır ve SQL Server Agent yetkili hesaplarıyla ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysproxylogin: MSDB veritabınında yer alır ve her SQL Server Agent yetkili hesabıyla ilişkilendirilmiş SQL Server oturumunu kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysproxysubsystem: MSDB veritabınında yer alır ve her yetkili hesabıyla kullanılan SQL Server alt sistemini kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysschedules: MSDB veritabınında yer alır ve SQL Server Agent zamanlanmış görevlerle ilgili bilgileri içerir.
syssessions: MSDB veritabınında yer alır ve her SQL Server Agent oturumu için SQL Server Agent’ın başlagıç tarihini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syssubsystems: MSDB veritabınında yer alır ve mevcut SQL Server Agent üzerindeki alt sistemlerle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systargetservergroupmembers: MSDB veritabınında yer alır ve anlık çok sunuculu grupta listelenmiş grup üyelerini kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systargetservergroups: MSDB veritabınında yer alır ve anlık çok sunuculu ortamda listelenmiş hedef sunucu gruplarını kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systargetservers: MSDB veritabınında yer alır ve anlık çok sunuculu domain de listelenmiş hedef sunucuları kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systaskids: MSDB veritabını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. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysaltfiles: Tüm veritabanlarında yer alır ve özel durumlarda, veritabanındaki dosyalara karşılık gelen satırlar içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscacheobjects: Tüm veritabanlarında yer alır ve ön bellekle ilgili bilgiler içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscharsets: Tüm veritabanlarında yer alır ve SQL Server 2005’den itibaren veritabanı motoru tarafından kullanılmak üzere karakter katarlarını tutar. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscolumns: Tüm veritabanlarında yer alır ve veritabanı tablolarındaki her sütunu satıra çevirir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscomments: Tüm veritabanlarında yer alır ve veritabanında tutulan her tablo, varsayılan değer, kural, varsayılan kısıtlama, kontrol kısıtlaması için girdi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysconfigures: Tüm veritabanlarında yer alır ve kullanıcı tarafından yapılmış konfigurasyon bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysconstraints: Tüm veritabanlarında yer alır ve veritabanındaki objeler ve bu objelerle ilgili kısıtları içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscurconfigs: Tüm veritabanlarında yer alır ve geçerli kurulumun her seçeneği için bir girdi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdepends: Tüm veritabanlarında yer alır ve 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. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdevices: Tüm veritabanlarında yer alır ve ilgili veritabanına ait diskteki ve de banttaki yedek dosya ile veritabanındaki dosyalara ait bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysfilegroups: Tüm veritabanlarında yer alır ve veritabanındaki her dosya grubuna ait bilgi içerir. Bu tabloda ana dosya grubu için en az bir girdi mevcuttur. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysfiles: Tüm veritabanlarında yer alır ve veritabanındaki her dosyaya ait bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysforeignkeys: Tüm veritabanlarında yer alır ve veritabanındaki tanım tablosunda bulunan foreign key kısıtlamalarıyla ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysfulltextcatalogs: Tüm veritabanlarında yer alır ve tüm metin katalogları hakkında bilgiler içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysindexes: Tüm veritabanlarında yer alır ve aktif veritabanındaki her tablo ve dizin için bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysindexkeys: Tüm veritabanlarında yer alır ve veritabanı dizinindeki anahtarlar veya kolonlar ile ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syslanguages: Tüm veritabanlarında yer alır ve SQL Server 2005’ten itaberen server da mevcut olan tüm diller için bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syslockinfo: Tüm veritabanlarında yer alır. Beklemedeki, değişim halindeki ve kabul edilmiş tüm kilit değişiklikleriyle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmembers: Tüm veritabanlarında yer alır ve veritabanı görevindeki her üyeye ait bilgiyi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysobjects: Tüm veritabanlarında yer alır ve ilgili veritabanındaki her bir objeye ait bilgiyi içerir.
sysoledbusers: Tüm veritabanlarında yer alır ve özel bağlı sunucuda her kullanıcı ve şifre eşleştirmesi için bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysperfinfo: Tüm veritabanlarında yer alır ve Windows Sistem Monitörü tarafından görüntülenebilen, SQL Server 2005’den itibaren performans ölçücü veritabanı motor bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syspermissions: Tüm veritabanlarında yer alır. Veritabanındaki kabul ve reddedilmiş tüm kullanıcı, grup ve görev izinleri ile ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysprocesses: Tüm veritabanlarında yer alır. Microsoft SQL Server örneğinde geçerli tüm işlemlerle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysprotects: Tüm veritabanlarında yer alır. GRANT ve DENY komutları yardımıyla veritabanındaki güvenlik hesaplarına verilen izinlerle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysreferences: Tüm veritabanlarında yer alır. Veritabanındaki ilişkili kolonlarla forgein key kısıtlama tanımlarının eşleştirmesini içerir.
sysremotelogins: Tüm veritabanları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. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysservers: Tüm veritabanlarında yer alır. Microsoft SQL Server örneğinin OLE DB veri kaynağı olarak erişebildiği tüm sunuculara ait bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systranschemas: Tüm veritabanlarında yer alır. Karşılıklı yayımlanan makale ve reklamlardaki şemalarda yapılan değişiklikleri takip etmek için kullanılır. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systypes: Tüm veritabanlarında yer alır. Veritabanında, kullanıcı tarafından tanımlanmış ve sistemde bulunan her türlü veri için bilgi tutar.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysusers: Tüm veritabanlarında yer alır. Her satırda bir NT kullanıcısı, NT grup, SQL Server kullanıcısı ya da SQL rolü içerir.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Şimdi ise bazı işlemlerde kolaylık sağlayan sorguları bu tabloları kullanarak yazalım.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# SQL Server’daki kayıtlı tüm veritabanı listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.DATABASES [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanına ait tabloların listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.TABLES [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Yukarıdaki sonucu almak için farklı sistem tablolarından yararlanarak aşağıda olduğu gibi farklı alternatif sorgular yazarakta elde edebiliriz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’U’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT NAME FROM SYSOBJECTS WHERE xtype=’U’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’U’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE=’BASE TABLE’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanında kayıtlı tüm SP’lerin listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.PROCEDURES [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Aynı şekilde aşağıdaki sorgulardan da yararlanabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’P’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’P’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT NAME FROM SYSOBJECTS WHERE xtype=’P’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE=’PROCEDURE’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanında kayıtlı Views’lerin listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.VIEWS [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Alternatifler:[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’V’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’V’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Aynı şekilde veritabanında kayıtlı tüm fonksiyonların listesi elde etmek için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’IF’ -- inline function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’TF’ -- table valued function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’FN’ -- scalar function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’IF’ -- inline function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’TF’ -- table valued function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’FN’ -- scalar function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE=’FUNCTION’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Kayıtlı tüm triggerların listesini almak için; [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.TRIGGERS [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]veya[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.OBJECTS WHERE type=’TR’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Belli bir tabloya ait triggerların listesini görmek için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SP_HELPTRIGGER Products SP’sini çalıştırabilir veya [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.TRIGGERS WHERE parent_id = object_id(’products’) sorgusu ile de görebilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Belli bir tabloya ait sütunları [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SP_COLUMNS Products SP’sini çalıştırabilir veya aşağıdaki alternatif sorgulardan yararlanabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.COLUMNS WHERE object_id = object_id(’Products’) [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT COLUMN_NAME, Ordinal_position, Data_Type, character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=’Products’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Belli bir tabloya ait sütuna ulaşmak için aşağıdaki alternatif sorgulardan yararlanabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT O.name FROM SYS.OBJECTS O INNER JOIN SYS.COLUMNS C ON C.Object_ID = O.Object_ID WHERE C.name LIKE ’%ShipName%’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT OBJECT_NAME(object_id) AS [Table Name] FROM SYS.COLUMNS WHERE name LIKE ’%ShipName%’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE ’%ShipName%’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Tablodaki toplan satırların listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT COUNT(@@ROWCOUNT) FROM Products [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT COUNT (ProductID) FROM Products [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT OBJECT_NAME(id) AS [Table Name], rowcnt FROM SYSINDEXES
WHERE OBJECTPROPERTY(id,’isUserTable’)=1 AND indid < 2 ORDER BY rowcnt DESC [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT rowcnt FROM sysindexes WHERE id = OBJECT_ID(’Products’) AND indid < 2 [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT OBJECT_NAME(OBJECT_ID) TableName, row_count FROM sys.dm_db_partition_stats
WHERE object_id = object_id(’Products’) AND index_id < 2 [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanındaki constraints’lerin listesini almak için aşağıdaki sorgulardan yararlanılabilir.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.OBJECTS WHERE type=’C’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM sys.check_constraints [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Tabloda kullanılan indexlerin listesini almak için de;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sp_helpindex Products SP’sinden yararlanabilir veya aşağıdaki sorguyu çalıştırabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM sys.indexes WHERE object_id = object_id(’products’) [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Faydalı olması temennisiyle, herkese iyi çalışmalar...[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]ALINTIDIR//
[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Ö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ı inceleyeceğiz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdatabases: Master veritabınında yer alır ve SQL Server üzerindeki her bir veritabanı için bir satır içerir.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syslogins: Master veritabınında yer alır ve SQL Server’a bağlanmak için gereken login hesablarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmessages: Master veritabınında yer alır ve SQL Server’ın verebileceği hata mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysalerts: MSDB veritabınında yer alır ve satır satır uyarı mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscategories: MSDB veritabınında yer alır ve SQL Server Management Studio tarafından işleri, uyarıları ve operatörleri kaydetmek amacıyla kullanılan kategorileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdownloadlist: MSDB veritabınında yer alır ve tüm hedef sunucular için download talimatlarının sırasını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobactivity: MSDB veritabınında yer alır ve anlık SQL Server Agent’a ait işleyişi kontrol eder ve durumu hakkındaki bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobhistory: MSDB veritabınında yer alır ve SQL Server Agent tarafından planlanmış işlerin uygulaması hakkındaki bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobs: MSDB veritabınında yer alır ve SQL Server Agent tarafından planlanmış işlerle ilgili bilgileri depolar. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobschedules: MSDB veritabınında yer alır ve SQL Server Agent tarafından gerçekleştirilecek işlerin plan bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysjobservers: MSDB veritabınında yer alır ve belirli bir iş için bir ya da daha fazla hedef sunucu arasındaki tüm bağların bilgilerini içerir.
sysjobsteps: MSDB veritabınında yer alır ve SQL Server Agent tarafından tamamlanmak üzere olan bir işin her aşamasıyla ilgili bilgileri içerir.
sysjobstepslogs: MSDB veritabınında yer alır ve günlük iş bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_allitems: MSDB veritabınında yer alır ve database mail tarafından işlenmiş mesajları içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmailevent_log: MSDB veritabınında yer alır ve database mail sistemi tarafından geri çevrilen her Windows ya da SQL Sunucusu mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_faileditems: MSDB veritabınında yer alır ve başarısız durumdaki her data mail mesajını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_mailattachments: MSDB veritabınında yer alır ve data mail’a iliştirilen ekleri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_sentitems: MSDB veritabınında yer alır ve database mail tarafından gönderilen her bir mesajı içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmail_unsentitems: MSDB veritabınında yer alır ve "Gönderilemedi" veya "tekrar deneniyor" durumundaki data mail mesajlarını içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysnotifications: MSDB veritabınında yer alır ve bildirimleri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysoperators: MSDB veritabınında yer alır ve her bir SQL Server Agent operatörünü saklar.
sysproxies: MSDB veritabınında yer alır ve SQL Server Agent yetkili hesaplarıyla ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysproxylogin: MSDB veritabınında yer alır ve her SQL Server Agent yetkili hesabıyla ilişkilendirilmiş SQL Server oturumunu kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysproxysubsystem: MSDB veritabınında yer alır ve her yetkili hesabıyla kullanılan SQL Server alt sistemini kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysschedules: MSDB veritabınında yer alır ve SQL Server Agent zamanlanmış görevlerle ilgili bilgileri içerir.
syssessions: MSDB veritabınında yer alır ve her SQL Server Agent oturumu için SQL Server Agent’ın başlagıç tarihini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syssubsystems: MSDB veritabınında yer alır ve mevcut SQL Server Agent üzerindeki alt sistemlerle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systargetservergroupmembers: MSDB veritabınında yer alır ve anlık çok sunuculu grupta listelenmiş grup üyelerini kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systargetservergroups: MSDB veritabınında yer alır ve anlık çok sunuculu ortamda listelenmiş hedef sunucu gruplarını kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systargetservers: MSDB veritabınında yer alır ve anlık çok sunuculu domain de listelenmiş hedef sunucuları kaydeder. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systaskids: MSDB veritabını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. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysaltfiles: Tüm veritabanlarında yer alır ve özel durumlarda, veritabanındaki dosyalara karşılık gelen satırlar içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscacheobjects: Tüm veritabanlarında yer alır ve ön bellekle ilgili bilgiler içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscharsets: Tüm veritabanlarında yer alır ve SQL Server 2005’den itibaren veritabanı motoru tarafından kullanılmak üzere karakter katarlarını tutar. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscolumns: Tüm veritabanlarında yer alır ve veritabanı tablolarındaki her sütunu satıra çevirir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscomments: Tüm veritabanlarında yer alır ve veritabanında tutulan her tablo, varsayılan değer, kural, varsayılan kısıtlama, kontrol kısıtlaması için girdi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysconfigures: Tüm veritabanlarında yer alır ve kullanıcı tarafından yapılmış konfigurasyon bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysconstraints: Tüm veritabanlarında yer alır ve veritabanındaki objeler ve bu objelerle ilgili kısıtları içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syscurconfigs: Tüm veritabanlarında yer alır ve geçerli kurulumun her seçeneği için bir girdi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdepends: Tüm veritabanlarında yer alır ve 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. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysdevices: Tüm veritabanlarında yer alır ve ilgili veritabanına ait diskteki ve de banttaki yedek dosya ile veritabanındaki dosyalara ait bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysfilegroups: Tüm veritabanlarında yer alır ve veritabanındaki her dosya grubuna ait bilgi içerir. Bu tabloda ana dosya grubu için en az bir girdi mevcuttur. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysfiles: Tüm veritabanlarında yer alır ve veritabanındaki her dosyaya ait bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysforeignkeys: Tüm veritabanlarında yer alır ve veritabanındaki tanım tablosunda bulunan foreign key kısıtlamalarıyla ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysfulltextcatalogs: Tüm veritabanlarında yer alır ve tüm metin katalogları hakkında bilgiler içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysindexes: Tüm veritabanlarında yer alır ve aktif veritabanındaki her tablo ve dizin için bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysindexkeys: Tüm veritabanlarında yer alır ve veritabanı dizinindeki anahtarlar veya kolonlar ile ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syslanguages: Tüm veritabanlarında yer alır ve SQL Server 2005’ten itaberen server da mevcut olan tüm diller için bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syslockinfo: Tüm veritabanlarında yer alır. Beklemedeki, değişim halindeki ve kabul edilmiş tüm kilit değişiklikleriyle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysmembers: Tüm veritabanlarında yer alır ve veritabanı görevindeki her üyeye ait bilgiyi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysobjects: Tüm veritabanlarında yer alır ve ilgili veritabanındaki her bir objeye ait bilgiyi içerir.
sysoledbusers: Tüm veritabanlarında yer alır ve özel bağlı sunucuda her kullanıcı ve şifre eşleştirmesi için bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysperfinfo: Tüm veritabanlarında yer alır ve Windows Sistem Monitörü tarafından görüntülenebilen, SQL Server 2005’den itibaren performans ölçücü veritabanı motor bilgilerini içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]syspermissions: Tüm veritabanlarında yer alır. Veritabanındaki kabul ve reddedilmiş tüm kullanıcı, grup ve görev izinleri ile ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysprocesses: Tüm veritabanlarında yer alır. Microsoft SQL Server örneğinde geçerli tüm işlemlerle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysprotects: Tüm veritabanlarında yer alır. GRANT ve DENY komutları yardımıyla veritabanındaki güvenlik hesaplarına verilen izinlerle ilgili bilgileri içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysreferences: Tüm veritabanlarında yer alır. Veritabanındaki ilişkili kolonlarla forgein key kısıtlama tanımlarının eşleştirmesini içerir.
sysremotelogins: Tüm veritabanları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. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysservers: Tüm veritabanlarında yer alır. Microsoft SQL Server örneğinin OLE DB veri kaynağı olarak erişebildiği tüm sunuculara ait bilgi içerir. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systranschemas: Tüm veritabanlarında yer alır. Karşılıklı yayımlanan makale ve reklamlardaki şemalarda yapılan değişiklikleri takip etmek için kullanılır. [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]systypes: Tüm veritabanlarında yer alır. Veritabanında, kullanıcı tarafından tanımlanmış ve sistemde bulunan her türlü veri için bilgi tutar.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sysusers: Tüm veritabanlarında yer alır. Her satırda bir NT kullanıcısı, NT grup, SQL Server kullanıcısı ya da SQL rolü içerir.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Şimdi ise bazı işlemlerde kolaylık sağlayan sorguları bu tabloları kullanarak yazalım.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# SQL Server’daki kayıtlı tüm veritabanı listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.DATABASES [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanına ait tabloların listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.TABLES [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Yukarıdaki sonucu almak için farklı sistem tablolarından yararlanarak aşağıda olduğu gibi farklı alternatif sorgular yazarakta elde edebiliriz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’U’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT NAME FROM SYSOBJECTS WHERE xtype=’U’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’U’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE=’BASE TABLE’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanında kayıtlı tüm SP’lerin listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.PROCEDURES [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Aynı şekilde aşağıdaki sorgulardan da yararlanabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’P’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’P’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT NAME FROM SYSOBJECTS WHERE xtype=’P’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE=’PROCEDURE’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanında kayıtlı Views’lerin listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.VIEWS [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Alternatifler:[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’V’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’V’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Aynı şekilde veritabanında kayıtlı tüm fonksiyonların listesi elde etmek için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’IF’ -- inline function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’TF’ -- table valued function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.OBJECTS WHERE type=’FN’ -- scalar function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’IF’ -- inline function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’TF’ -- table valued function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT name FROM SYS.ALL_OBJECTS WHERE type=’FN’ -- scalar function [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE=’FUNCTION’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Kayıtlı tüm triggerların listesini almak için; [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.TRIGGERS [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]veya[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.OBJECTS WHERE type=’TR’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Belli bir tabloya ait triggerların listesini görmek için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SP_HELPTRIGGER Products SP’sini çalıştırabilir veya [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.TRIGGERS WHERE parent_id = object_id(’products’) sorgusu ile de görebilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Belli bir tabloya ait sütunları [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SP_COLUMNS Products SP’sini çalıştırabilir veya aşağıdaki alternatif sorgulardan yararlanabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.COLUMNS WHERE object_id = object_id(’Products’) [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT COLUMN_NAME, Ordinal_position, Data_Type, character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=’Products’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Belli bir tabloya ait sütuna ulaşmak için aşağıdaki alternatif sorgulardan yararlanabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT O.name FROM SYS.OBJECTS O INNER JOIN SYS.COLUMNS C ON C.Object_ID = O.Object_ID WHERE C.name LIKE ’%ShipName%’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT OBJECT_NAME(object_id) AS [Table Name] FROM SYS.COLUMNS WHERE name LIKE ’%ShipName%’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE ’%ShipName%’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Tablodaki toplan satırların listesini almak için;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT COUNT(@@ROWCOUNT) FROM Products [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT COUNT (ProductID) FROM Products [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT OBJECT_NAME(id) AS [Table Name], rowcnt FROM SYSINDEXES
WHERE OBJECTPROPERTY(id,’isUserTable’)=1 AND indid < 2 ORDER BY rowcnt DESC [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT rowcnt FROM sysindexes WHERE id = OBJECT_ID(’Products’) AND indid < 2 [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT OBJECT_NAME(OBJECT_ID) TableName, row_count FROM sys.dm_db_partition_stats
WHERE object_id = object_id(’Products’) AND index_id < 2 [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Veritabanındaki constraints’lerin listesini almak için aşağıdaki sorgulardan yararlanılabilir.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM SYS.OBJECTS WHERE type=’C’ [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM sys.check_constraints [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif][/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]# Tabloda kullanılan indexlerin listesini almak için de;[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]sp_helpindex Products SP’sinden yararlanabilir veya aşağıdaki sorguyu çalıştırabilirsiniz.[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]SELECT * FROM sys.indexes WHERE object_id = object_id(’products’) [/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]Faydalı olması temennisiyle, herkese iyi çalışmalar...[/FONT]
[FONT=Verdana, Arial, Helvetica, sans-serif]ALINTIDIR//
[/FONT]