SQL Server  

What Are Stored Procedures in SQL Server and How to Use Them

Introduction

When working with databases, especially in real-world applications, writing the same SQL queries again and again can become repetitive, error-prone, and hard to maintain. This is where Stored Procedures in SQL Server come in.

Stored Procedures help you store SQL logic inside the database and reuse it whenever needed. They improve performance, enhance security, and make your code cleaner and more organized.

In this article, you will learn what stored procedures are, why they are important, and how to create and use them step by step with simple examples.

What Is a Stored Procedure in SQL Server?

A Stored Procedure is a pre-written set of SQL statements that is stored in the SQL Server database and can be executed whenever required.

Think of it like a reusable function in programming.

Instead of writing the same SQL query multiple times, you can write it once as a stored procedure and call it whenever needed.

Example

CREATE PROCEDURE GetAllEmployees
AS
BEGIN
    SELECT * FROM Employees;
END;

To execute this stored procedure:

EXEC GetAllEmployees;

Why Use Stored Procedures?

Stored procedures are widely used in modern database applications for several reasons.

1. Reusability

You can write the logic once and use it multiple times.

2. Better Performance

SQL Server compiles stored procedures once and reuses execution plans, which improves performance.

3. Security

You can restrict direct access to tables and allow users to interact only through stored procedures.

4. Maintainability

Changes can be made in one place without affecting multiple application queries.

5. Reduced Network Traffic

Instead of sending large queries over the network, you just call the procedure.

Types of Stored Procedures in SQL Server

1. User-Defined Stored Procedures

Created by developers to perform specific tasks.

2. System Stored Procedures

Built-in procedures provided by SQL Server.

Example:

EXEC sp_help;

3. Temporary Stored Procedures

Used for temporary operations and deleted automatically.

How to Create a Stored Procedure

Let’s create a stored procedure step by step.

Example: Get Employees by Department

CREATE PROCEDURE GetEmployeesByDepartment
    @DepartmentName VARCHAR(50)
AS
BEGIN
    SELECT *
    FROM Employees
    WHERE Department = @DepartmentName;
END;

How to Execute a Stored Procedure

EXEC GetEmployeesByDepartment @DepartmentName = 'IT';

Using Parameters in Stored Procedures

Stored procedures can accept input parameters.

Example with Multiple Parameters

CREATE PROCEDURE GetEmployeeDetails
    @MinSalary INT,
    @Department VARCHAR(50)
AS
BEGIN
    SELECT *
    FROM Employees
    WHERE Salary >= @MinSalary
      AND Department = @Department;
END;

Execution:

EXEC GetEmployeeDetails 40000, 'HR';

Output Parameters in Stored Procedures

You can also return values using output parameters.

Example

CREATE PROCEDURE GetEmployeeCount
    @Department VARCHAR(50),
    @TotalCount INT OUTPUT
AS
BEGIN
    SELECT @TotalCount = COUNT(*)
    FROM Employees
    WHERE Department = @Department;
END;

Execution:

DECLARE @Count INT;

EXEC GetEmployeeCount 'IT', @Count OUTPUT;

SELECT @Count AS TotalEmployees;

Stored Procedure with Conditional Logic

You can use conditions like IF...ELSE.

CREATE PROCEDURE CheckSalary
    @Salary INT
AS
BEGIN
    IF @Salary > 50000
        PRINT 'High Salary';
    ELSE
        PRINT 'Low Salary';
END;

Modifying a Stored Procedure

To update an existing procedure, use ALTER.

ALTER PROCEDURE GetAllEmployees
AS
BEGIN
    SELECT Name, Salary FROM Employees;
END;

Deleting a Stored Procedure

DROP PROCEDURE GetAllEmployees;

Best Practices for Stored Procedures

1. Use Meaningful Names

Choose clear and descriptive names.

2. Avoid SELECT *

Always select only required columns.

3. Use Parameters Properly

This improves flexibility and reusability.

4. Handle Errors

Use TRY...CATCH for better error handling.

BEGIN TRY
    -- your logic
END TRY
BEGIN CATCH
    PRINT ERROR_MESSAGE();
END CATCH;

5. Keep Procedures Small

Avoid writing very large and complex procedures.

Common Mistakes to Avoid

  • Not using parameters properly

  • Writing very large procedures

  • Ignoring error handling

  • Using SELECT * unnecessarily

Real-World Use Case

In real applications like e-commerce or banking systems, stored procedures are used to:

  • Insert orders

  • Process transactions

  • Generate reports

  • Validate data

They help centralize business logic inside the database.

Conclusion

Stored Procedures in SQL Server are a powerful feature that helps you write efficient, reusable, and secure database logic.

They reduce redundancy, improve performance, and make your application easier to maintain.

If you are working with SQL Server, learning and using stored procedures is an essential skill for building scalable and professional applications.

Start creating simple stored procedures and gradually move to more advanced ones to fully understand their power.