Here let's learn 50 most important SQL queries in SQL Server. SQL SQL Server is one of the most popular RDBMs used by enterprizes and used by millions of applications. To become a good software and data developer, understanding SQL is very important. In SQL Server, all data is accessed and updated using SQL queries. In this article, I will discuss top 50 general purpose SQL queries. I think each developer should have knowledge of these queries. These queries are not related to any specific topic of SQL. But knowledge of such queries can solve some complex tasks and may be used in many scenarios.

Query 1: How to Retrieve List of All Databases in SQL Server

The following SQL query retrieves a list of all databases on a SQL Server.

SQL
EXEC sp_helpdb

Example

Query 2: How to Display Text of a Stored Procedure, Trigger, or View in SQL Server

The following SQL query gets the display text of a stored procedure, trigger, or view on SQL Server.

SQL
exec sp_helptext @objname = 'Object_Name'

Example

Query 3: How to List All Stored Procedures in SQL Server

The following SQL query gets a list of all stored procedures in a SQL Server database.

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

Example

To retrieve the View use “V” instead of “P” and for functions use “FN.

Query 4: How to Get All Stored Procedures Related To a Table in SQL Server

The following SQL query gets all stored procedures related to a database table in SQL Server.

SQL
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'

Example

To retrieve the View use “V” instead of “P” and for functions use “FN.

Query 5: How to Rebuild All Indexes of a SQL Server Database

The following SQL query rebuilds all indexes of a SQL Server database.

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

Example

Query 6: How to Retrieve All dependencies of Stored Procedures in SQL Server

This query returns all object names that are being using in stored procedurs like tables, user define functions, another stored procedures and so on.

SQL
;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

Example

Query 7: How to Find Size of a Database Table in SQL Server

The following SQL query gets the size of a database table of a SQL Server database.

SQL
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

Example

Query 8: How to get all tables that don’t have identity columns in SQL Server

The following SQL query gets all tables of a SQL Server database that don't have identity columns.

SQL
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'

Example

Query 9: How to List Primary Keys and Foreign Keys in a SQL Server Database

The following SQL query gets a list of all primary keys and foreign keys on a SQL Server database.

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

Example

Query 10: List of Primary Key and Foreign Key for a particular table

SQL
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

Example

Query 11: RESEED Identity of all tables

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

Example

Query 12: List of tables with number of records

SQL
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;

Example

Query 13: Get the version name of SQL Server

SQL
SELECT @@VERSION AS Version_Name

Example

Query 14: Get Current Language of SQL Server

SQL
SELECT @@LANGUAGE AS Current_Language;

Example

Query 15: Disable all constraints of a table

SQL
ALTER TABLE Table_Name NOCHECK CONSTRAINT ALL

Example

Query 16: Disable all constraints of all tables

SQL
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

Example

Query 17: Get Current Language Id

SQL
SELECT @@LANGID AS 'Language ID'

Example

Query 18: Get precision level used by decimal and numeric as current set in Server

SQL
SELECT @@MAX_PRECISION AS 'MAX_PRECISION'

Example

Query 19: Return Server Name of SQL Server

SQL
SELECT @@SERVERNAME AS 'Server_Name'

Example

Query 20: Get name of register key under which SQL Server is running

SQL
SELECT @@SERVICENAME AS 'Service_Name'

Example

Query 21: Get Session Id of current user process

SQL
SELECT @@SPID AS 'Session_Id'

Example

Query 22: Get Current Value of TEXTSIZE option

SQL
SELECT @@TEXTSIZE AS 'Text_Size'

Example

Query 23: Retrieve Free Space of Hard Disk

SQL
EXEC master..xp_fixeddrives

example

Query 24: Disable a Particular Trigger


Syntax

SQL
ALTER TABLE Table_Name DISABLE TRIGGER Trigger_Name

Example

SQL
ALTER TABLE Employee DISABLE TRIGGER TR_Insert_Salary

Query 25: Enable a Particular Trigger

Syntax

SQL
ALTER TABLE Table_Name ENABLE TRIGGER Trigger_Name

Example

SQL
ALTER TABLE Employee ENABLE TRIGGER TR_Insert_Salary

Query 26: Disable All Trigger of a table

We can disable and enable all triggers of a table using previous query, but replacing the "ALL" instead of trigger name.

Syntax

SQL
ALTER TABLE Table_Name DISABLE TRIGGER ALL

Example

SQL
ALTER TABLE Demo DISABLE TRIGGER ALL

Query 27: Enable All Trigger of a table

SQL
ALTER TABLE Table_Name ENABLE TRIGGER ALL

Example

SQL
ALTER TABLE Demo ENABLE TRIGGER ALL

Query 28: Disable All Trigger for database

Using sp_msforeachtable system stored procedure we enable and disable all triggers for a database.

Syntax

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

Example

example

Query 29: Enable All Trigger for database

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

example

Query 30: List of Stored procedure modified in last N days

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

example

Query 31: List of Stored procedure created in last N days

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

Example

Query 32: Recompile a stored procedure

SQL
EXEC sp_recompile'Procedure_Name';
GO

Example

Query 33: Recompile all stored procedure on a table

SQL
EXEC sp_recompile N'Table_Name';
GO

Example

Query 34: Get all columns of a specific data type

SQL
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'

Example

Query 35: Get all Nullable columns of a table

SQL
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'

Example

Query 36: Get All table that don’t have primary key

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

Example

Query 37: Get All table that don’t have foreign key

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

Example

Query 38: Get All table that don’t have identity column

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

Example

Query 39: Get First Date of Current Month

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

Example

Query 40: Get last date of previous month

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

Example

Query 41: Get last date of current month

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

Example

Query 42: Get first date of next month

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

Example

Query 43: Swap the values of two columns

SQL
UPDATE Table_Name SET Column1=Column2, Column2=Column1

Example

Query 44: Remove all stored procedure from database

SQL
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

Example

Query 45: Remove all views from database

SQL
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
Deallocate My_Cursor

Example

Query 46: Drop all tables

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

Example

Query 47: Get information of tables’ columns

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

Example

Query 48: Get all columns contain any constraints

SQL
SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

Example

Query 49: Get all tables that contain a view

SQL
SELECT * FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE

Example

Query 50: Get all columns of table that using in views

SQL
SELECT * FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE

Example

Read more articles on SQL Queries: