SQL Server ‘da 50 Önemli Sorgu

 SQL Server ‘da 50 Önemli Sorgu
Okunuyor SQL Server ‘da 50 Önemli Sorgu

Bu yazıda bazı genel amaçlı SQL Server sorgularını açıklayacağım. Her geliştiricinin bu sorguları bilmeleri gerektiğini düşünüyorum. Bu sorgular herhangi bir SQL konu ile alakalı değildir. Ancak, bu tür sorguları bilmek bazı karmaşık görevleri çözebilir ve birçok senaryoda kullanılabilir, bu nedenle bu sorgularla ilgili bir makale yazmaya karar verdim.

SQL Server ‘da 50 Önemli Sorgu

Sorgu 1: Tüm Veritabanının Listesini Al

EXEC sp_helpdb

Örnek:

Example

Sorgu 2: Saklanan Yordamın, Tetikleyicinin, Görünümün Metnini Görüntüle

exec sp_helptext @objname = 'Object_Name'

Örnek:

Example

Sorgu 3: Veritabanı ile İlgili Tüm Saklanan Yordam Alın

SELECT DISTINCT o.name, o.xtype  
  
FROM syscomments c  
  
INNER JOIN sysobjects o ON c.id=o.id  
  
WHERE o.xtype='P'

 

Örnek:

Example

Görünümü almak için “P” yerine “V” kullanın ve işlevler için “FN.”

Sorgu 4: Tabloya ilişkin tüm saklı yordamları al

SELECT DISTINCT o.name, o.xtype  
  
FROM syscomments c  
  
INNER JOIN sysobjects o ON c.id=o.id  
  
WHERE c.TEXT LIKE '%Table_Name%' AND o.xtype='P'

 

Örnek:

Example

Görünümü almak için “P” yerine “V” kullanın ve işlevler için “FN.

Sorgu 5: Veritabanının Tüm Dizinini Yeniden Oluşturun

EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"  
  
GO  
  
EXEC sp_updatestats  
  
GO

Örnek:

Example

Sorgu 6: Saklanan Yordamın Tüm Bağımlılıklarını Al:

Bu sorgu, tablo, kullanıcı tanımlı işlev, başka bir saklı yordam gibi saklı yordam kullanan tüm nesneleri döndürür.

;WITH stored_procedures AS (  
  
SELECT  
  
oo.name AS table_name,  
  
ROW_NUMBER() OVER(partition by o.name,oo.name ORDER BY o.name,oo.name) AS row  
  
FROM sysdepends d  
  
INNER JOIN sysobjects o ON o.id=d.id  
  
INNER JOIN sysobjects oo ON oo.id=d.depid  
  
WHERE o.xtype = 'P' AND o.name LIKE '%SP_NAme%' )  
  
SELECT Table_name FROM stored_procedures  
  
WHERE row = 1

Örnek:

Example

Sorgu 7: Veritabanındaki tüm tabloların Byte Oranına Göre Boyutunu Bul

SELECT sob.name AS Table_Name,  
  
SUM(sys.length) AS [Size_Table(Bytes)]  
  
FROM sysobjects sob, syscolumns sys  
  
WHERE sob.xtype='u' AND sys.id=sob.id  
  
GROUP BY sob.name

Örnek :

Example

Sorgu 8: Kimlik sütununa(Anahtar Sütün) sahip olmayan tüm Tabloları al:

SELECT  
  
TABLE_NAME FROM INFORMATION_SCHEMA.TABLES  
  
where  
  
Table_NAME NOT IN  
  
(  
  
SELECT DISTINCT c.TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS c  
  
INNER  
  
JOIN sys.identity_columns ic  
  
on  
  
(c.COLUMN_NAME=ic.NAME))  
  
AND  
  
TABLE_TYPE ='BASE TABLE'

Örnek :

Example

Sorgu 9: Tüm Veritabanı için Birincil Anahtar(Primary Key) ve Yabancı Anahtarı(Foreign Key) Listesi

SELECT  
  
DISTINCT  
  
Constraint_Name AS [Constraint],  
  
Table_Schema AS [Schema],  
  
Table_Name AS [TableName] FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE  
  
GO  

Örnek :

Example

Sorgu 10: Belirli bir tablo için Birincil Anahtar ve Yabancı Anahtarı Listesi

SELECT  
  
DISTINCT  
  
Constraint_Name AS [Constraint],  
  
Table_Schema AS [Schema],  
  
Table_Name AS [TableName] FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE  
  
WHERE INFORMATION_SCHEMA.KEY_COLUMN_USAGE.TABLE_NAME='Table_Name'  
  
GO

Örnek :

Example

Sorgu 11: RESEED Bütün tabloların kimliği

EXEC sp_MSForEachTable '  
  
IF OBJECTPROPERTY(object_id(''?''), ''TableHasIdentity'') = 1  
  
DBCC CHECKIDENT (''?'', RESEED, 0)

Örnek :

Example

Sorgu 12: Kayıtların sayısıyla tabloların listesi

CREATE TABLE #Tab  
  
(  
  
Table_Name [varchar](max),  
  
Total_Records int  
  
);  
  
EXEC sp_MSForEachTable @command1=' Insert Into #Tab(Table_Name, Total_Records) SELECT ''?'', COUNT(*) FROM ?'  
  
SELECT * FROM #Tab t ORDER BY t.Total_Records DESC;  
  
DROP TABLE #Tab;

Örnek :

Example

Sorgu 13: SQL Server’ın sürüm adını edinin

ELECT @@VERSION AS Version_Name

Örnek :

Example

Sorgu 14: SQL Server’ın Geçerli Dili Alın

SELECT @@LANGUAGE AS Current_Language;

Örnek :

Example

Sorgu 15: Bir tablonun tüm sınırlamalarını devre dışı bırak

ALTER TABLE Table_Name NOCHECK CONSTRAINT ALL

Örnek :

Example

Sorgu 16: Tüm tabloların tüm kısıtlamalarını devre dışı bırak

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

Örnek :

Example

Sorgu 17: Geçerli Dil ID ‘ sini al

SELECT @@LANGID AS 'Language ID'

Örnek :

Example

Sorgu 18: Sunucuda geçerli ayar olarak ondalık ve sayısal olarak kullanılan hassas seviyeyi al:

SELECT @@MAX_PRECISION AS 'MAX_PRECISION'

Örnek :

Example

Sorgu 19: SQL Server’ın Sunucu Adını Getir

SELECT @@SERVERNAME AS 'Server_Name'

Örnek :

Example

Sorgu 20: SQL Server’ın çalıştığı kayıt defteri anahtarının adını öğrenin

SELECT @@SERVICENAME AS 'Service_Name'

Örnek :

Example

Sorgu 21: Geçerli kullanıcı işleminin Oturum Kimliği Alın

SELECT @@SPID AS 'Session_Id'

Örnek :

Example

Sorgu 22: TEXTSIZE seçeneğinin şu anki değerini al

SELECT @@TEXTSIZE AS 'Text_Size'

Örnek :

Example

Sorgu 23: Sabit Diskteki Boş Alanı Al

EXEC master..xp_fixeddrives

Örnek :

example

Sorgu 24: Belirli bir Tetikleyiciyi Devre Dışı Bırak

ALTER TABLE Table_Name DISABLE TRIGGER Trigger_Name

Örnek :

ALTER TABLE Employee DISABLE TRIGGER TR_Insert_Salary

Sorgu 25: Özel Bir Tetikleyici Etkinleştirme

ALTER TABLE Table_Name ENABLE TRIGGER Trigger_Name

Örnek :

ALTER TABLE Employee ENABLE TRIGGER TR_Insert_Salary

Sorgu 26: Bir tablonun Tüm Tetikleyicileri’ni (Trigger) Devre Dışı Bırak

Önceki sorguyu kullanarak bir tablonun tüm tetikleyicilerini devre dışı bırakabilir ve etkinleştirebiliriz, ancak tetikleyicileri teker teker devre dışı bırakmak yerine “TÜMÜNÜ” tek komutla devre dışı bırakabiliriz.

ALTER TABLE Table_Name DISABLE TRIGGER ALL

Örnek :

ALTER TABLE Demo DISABLE TRIGGER ALL

Sorgu 27: Bir tablonun tümü Tetikleyicilerini (Trigger) etkinleştir

ALTER TABLE Table_Name ENABLE TRIGGER ALL

Örnek :

ALTER TABLE Demo ENABLE TRIGGER ALL

Sorgu 28: Veritabanı için Tüm Tetikleyicileri (Trigger) Devre Dışı Bırak

Sp_msforeachtable sistem saklı yordamını kullanarak bir veritabanının tüm tetikleyicilerini etkinleştirir ve devre dışı bırakırız.

Use Database_Name  
  
Exec sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER all"

Örnek :


example

Sorgu 29: Veritabanı için Tüm Tetikleyicileri(Triggers) Etkinleştir

Use Demo  
  
Exec sp_msforeachtable "ALTER TABLE ? ENABLE TRIGGER all"

Örnek :


example

Sorgu 30: Son N gün içinde değiştirilmiş saklı yordam listesi

SELECT name,modify_date  
  
FROM sys.objects  
  
WHERE type='P'  
  
AND DATEDIFF(D,modify_date,GETDATE())< N

Örnek :example

Query31: Son N gün içinde oluşturulmuş saklı yordam listesi

SELECT name,sys.objects.create_date  
  
FROM sys.objects  
  
WHERE type='P'  
  
AND DATEDIFF(D,sys.objects.create_date,GETDATE())< N

Örnek :

Example

Sorgu 32: Saklı yordamı yeniden derle

EXEC sp_recompile'Procedure_Name';  
  
GO

Örnek :

Example

Sorgu 33: Tüm saklı yordamları bir tabloda yeniden oluştur

EXEC sp_recompile N'Table_Name';  
  
GO

Örnek :

Example

Sorgu 34: Belli bir veri türünün tüm sütunlarını alın:

SELECT OBJECT_NAME(c.OBJECT_ID) as Table_Name, c.name as Column_Name  
  
FROM sys.columns AS c  
  
JOIN sys.types AS t ON c.user_type_id=t.user_type_id  
  
WHERE t.name = 'Data_Type'

Örnek :

Example

Sorgu 35: Bir tablonun tüm Nullable sütunlarını al

SELECT OBJECT_NAME(c.OBJECT_ID) as Table_Name, c.name as Column_Name  
  
FROM sys.columns AS c  
  
JOIN sys.types AS t ON c.user_type_id=t.user_type_id  
  
WHERE c.is_nullable=0 AND OBJECT_NAME(c.OBJECT_ID)='Table_Name'

Örnek :

Example

Sorgu 36: Birincil anahtarı olmayan tüm tabloları al

SELECT name AS Table_Name  
  
FROM sys.tables  
  
WHERE OBJECTPROPERTY(OBJECT_ID,'TableHasPrimaryKey') = 0  
  
ORDER BY Table_Name;

Örnek :

Example

Sorgu 37: Yabancı anahtar içermeyen tüm tabloyu al

SELECT name AS Table_Name  
  
FROM sys.tables  
  
WHERE OBJECTPROPERTY(OBJECT_ID,'TableHasForeignKey') = 0  
  
ORDER BY Table_Name;

 

Örnek :

Example

Sorgu 38: Kimlik sütununa sahip olmayan tüm tabloyu al

SELECT name AS Table_Name  
  
FROM sys.tables  
  
WHERE OBJECTPROPERTY(OBJECT_ID,'TableHasIdentity') = 0  
  
ORDER BY Table_Name;

Örnek :

Example

Sorgu 39: Bu Ayın İlk Gününü Al

SELECT CONVERT(VARCHAR(25),DATEADD(DAY,-(DAY(GETDATE()))+1,GETDATE()),105) First_Date_Current_Month;

Örnek :

Example

Sorgu 40: Bir önceki ayın son tarihini al

SELECT CONVERT(VARCHAR(25),DATEADD(DAY,-(DAY(GETDATE())),GETDATE()),105) Last_Date_Previous_Month;

Örnek :

Example

Sorgu 41: İçinde bulunduğumuz ayın son tarihini alın

SELECT CONVERT(VARCHAR(25),DATEADD(DAY,-(DAY(GETDATE())), DATEADD(MONTH,1,GETDATE())),105) Last_Date_Current_Month;

Örnek :

Example

Sorgu 42: Gelecek ayın ilk tarihini alın

SELECT CONVERT(VARCHAR(25),DATEADD(DAY,-(DAY(GETDATE())), DATEADD(MONTH,1,GETDATE())+1),105) First_Date_Next_Month;

Örnek :

Example

Sorgu 43: İki sütunun değerlerini değiştirin

UPDATE Table_Name SET Column1=Column2, Column2=Column1

Örnek :

Example

Sorgu 44: Tüm saklı yordamı veritabanından kaldır

Declare @Drop_SP Nvarchar(MAX) Declare My_Cursor Cursor For Select [name] From sys.objects where type = 'p' Open My_Cursor Fetch Next From My_Cursor Into @Drop_SP While @@FETCH_STATUS= 0 Begin Exec('DROP PROCEDURE ' + @Drop_SP) Fetch Next From My_Cursor Into @Drop_SP End Close My_Cursor Deallocate My_Cursor

Örnek :

Example

Sorgu 45: Tüm görünümleri veritabanından kaldır

Declare @Drop_View Nvarchar(MAX)  
  
Declare My_Cursor Cursor For Select [name] From sys.objects where type = 'v'  
  
Open My_Cursor  
  
Fetch Next From My_Cursor Into @Drop_View  
  
While @@FETCH_STATUS = 0  
  
Begin  
  
Exec('DROP VIEW ' + @Drop_View)  
  
Fetch Next From My_Cursor Into @Drop_View  
  
End  
  
Close My_Cursor  

Örnek :

Example

Sorgu 46: Tüm tabloları Sil

EXEC sys.sp_MSforeachtable @command1 = 'Drop Table ?'

Örnek :

Example

Sorgu 47: Tabloların sütunları hakkında bilgi edinin

SELECT * FROM INFORMATION_SCHEMA.COLUMNS  
  
WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME=’Table_Name’

Örnek :

Example

Sorgu 48: Tüm sütunların içerdiği kısıtlamaları al

SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

Örnek :

Example

Sorgu 49: Görünüm(wiew) içeren tüm tabloları al

SELECT * FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE

Örnek :

Example

Sorgu 50: Görünümlerde kullanılan tablonun tüm sütunlarını al

SELECT * FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE

Örnek :

Example

Sql server da kullanabileceğimiz bayı trigger sorgularını gösterdik.Bu sorguları bilmeniz sql server kullanımında pratik olacağı gibi kodlama yazarken yanlızca editöre bağlı kalmadan sql server aracılığıylada kodlamaya devam edebileceğiniz anlamına geliyor.

 

Yapılan Yorumlar

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.