Sql Server Creating And Executing Stored Procedures Complete Guide

 Last Update:2025-06-23T00:00:00     .NET School AI Teacher - SELECT ANY TEXT TO EXPLANATION.    8 mins read      Difficulty-Level: beginner

Understanding the Core Concepts of SQL Server Creating and Executing Stored Procedures

SQL Server Creating and Executing Stored Procedures

Why Use Stored Procedures?

  • Performance: Stored procedures reduce the amount of data sent between the client and the database server.
  • Security: Permissions can be granted at the stored procedure level rather than at the object level.
  • Maintainability: Changes to the underlying data can be handled within the stored procedures without affecting the client applications.
  • Reusability: Once a stored procedure is created, it can be called from multiple locations or by multiple applications.

Creating Stored Procedures: To create a stored procedure in SQL Server, you use the CREATE PROCEDURE or CREATE PROC statement. Below is an example of how to create a stored procedure.

CREATE PROCEDURE GetEmployeeDetails
AS
BEGIN
    SELECT EmployeeID, FirstName, LastName, Department
    FROM Employees
END

In this example, a stored procedure named GetEmployeeDetails is created, which fetches the EmployeeID, FirstName, LastName, and Department columns from the Employees table.

Parameters in Stored Procedures: Stored procedures can accept input and output parameters. Input parameters are used to pass data into the procedure, while output parameters are used to return data from the procedure.

Example with Input Parameter:

CREATE PROCEDURE GetEmployeeDetailsById
    @EmployeeId INT
AS
BEGIN
    SELECT EmployeeID, FirstName, LastName, Department
    FROM Employees
    WHERE EmployeeID = @EmployeeId
END

Example with Output Parameter:

CREATE PROCEDURE GetEmployeeCount
    @EmployeeCount INT OUTPUT
AS
BEGIN
    SELECT @EmployeeCount = COUNT(*) 
    FROM Employees
END

Executing Stored Procedures: To execute a stored procedure, you use the EXEC or EXECUTE statement.

Example:

EXEC GetEmployeeDetails

Executing with Input Parameter:

EXEC GetEmployeeDetailsById 1

Executing with Output Parameter:

DECLARE @Count INT
EXEC GetEmployeeCount @EmployeeCount = @Count OUTPUT
SELECT @Count AS TotalEmployees

Modifying Stored Procedures: To modify an existing stored procedure, you use the ALTER PROCEDURE statement. The syntax is similar to CREATE PROCEDURE.

ALTER PROCEDURE GetEmployeeDetailsById
    @EmployeeId INT
AS
BEGIN
    SELECT EmployeeID, FirstName, LastName, Department, HireDate
    FROM Employees
    WHERE EmployeeID = @EmployeeId
END

Dropping Stored Procedures: To delete a stored procedure, use the DROP PROCEDURE statement.

DROP PROCEDURE GetEmployeeDetails

Important Information:

  • Permissions: To create, alter, or drop stored procedures, you need appropriate permissions, such as CREATE PROCEDURE, ALTER PROCEDURE, or DROP PROCEDURE.
  • Transaction Management: Use transaction management within stored procedures to ensure data integrity. Transactions can be committed or rolled back based on the conditions.
  • Execution Plan: SQL Server generates execution plans for stored procedures, which can be analyzed using SQL Server Management Studio (SSMS) to optimize performance.
  • Security: Always validate input parameters within stored procedures to prevent SQL injection attacks.
  • Error Handling: Implement proper error handling using TRY...CATCH blocks to manage exceptions gracefully.

Online Code run

🔔 Note: Select your programming language to check or run code at

💻 Run Code Compiler

Step-by-Step Guide: How to Implement SQL Server Creating and Executing Stored Procedures

Step 1: Understanding Stored Procedures

Stored Procedures in SQL Server are precompiled groups of Transact-SQL statements that can be stored in the database and executed by name. They provide the following benefits:

  • Improved Performance: Compiled once and can be reused.
  • Security: Can restrict unauthorized access to data.
  • Reusability: Can be invoked by multiple applications or components.

Step 2: Setting Up SQL Server Environment

Ensure you have access to an SQL Server instance and management tools like SQL Server Management Studio (SSMS).

Step 3: Creating a Stored Procedure

Let’s create a simple stored procedure that retrieves employee details from a sample table.

Step 3.1: Create Sample Table

First, we need a sample table to work with. Here's how you can create a table named Employees:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50),
    Department NVARCHAR(50)
);

Step 3.2: Insert Sample Data

Insert some sample data into the Employees table:

INSERT INTO Employees (EmployeeID, FirstName, LastName, Department)
VALUES 
    (1, 'John', 'Doe', 'Sales'),
    (2, 'Jane', 'Smith', 'HR'),
    (3, 'Alice', 'Johnson', 'IT'),
    (4, 'Bob', 'Brown', 'Finance');

Step 3.3: Create the Stored Procedure

Now, let's create a stored procedure named GetEmployeeInfo that retrieves all employees from the Employees table.

CREATE PROCEDURE GetEmployeeInfo
AS
BEGIN
    SELECT EmployeeID, FirstName, LastName, Department
    FROM Employees;
END;

Step 3.4: Verify the Stored Procedure Creation

You can see the list of stored procedures in your database by expanding the Programmability folder in SSMS and then expanding the Stored Procedures folder.

Step 4: Executing the Stored Procedure

You can execute the stored procedure using the EXEC command.

Step 4.1: Execute the Stored Procedure

EXEC GetEmployeeInfo;

You should see the list of employees as output.

Step 5: Creating a Stored Procedure with Parameters

Now, let's create a stored procedure that retrieves details for a specific employee using an EmployeeID.

Step 5.1: Create the Stored Procedure with Parameters

CREATE PROCEDURE GetEmployeeById
    @EmpID INT
AS
BEGIN
    SELECT EmployeeID, FirstName, LastName, Department
    FROM Employees
    WHERE EmployeeID = @EmpID;
END;

Step 5.2: Execute the Stored Procedure with Parameters

To execute the stored procedure and get details for a specific employee, use the following command:

EXEC GetEmployeeById @EmpID = 2;

You should see the details for the employee with EmployeeID 2.

Step 6: Modifying a Stored Procedure

To modify an existing stored procedure, use the ALTER PROCEDURE statement.

Step 6.1: Modify the Stored Procedure

Let’s modify the GetEmployeeById procedure to also include the Department name in the output.

ALTER PROCEDURE GetEmployeeById
    @EmpID INT
AS
BEGIN
    SELECT EmployeeID, FirstName, LastName, Department
    FROM Employees
    WHERE EmployeeID = @EmpID;
END;

In this case, the procedure is already correctly showing the Department, so no change is needed. But the syntax to alter the procedure is shown above.

Step 7: Dropping a Stored Procedure

If you want to delete a stored procedure, you can use the DROP PROCEDURE statement.

Step 7.1: Drop the Stored Procedure

DROP PROCEDURE GetEmployeeById;

This command will remove the GetEmployeeById stored procedure from the database.

Step 8: Handling Errors in Stored Procedures

You can add error handling in a stored procedure using the TRY...CATCH block.

Step 8.1: Create a Stored Procedure with Error Handling

CREATE PROCEDURE GetEmployeeById_ErrorHandling
    @EmpID INT
AS
BEGIN
    BEGIN TRY
        -- Start of your SQL statements
        SELECT EmployeeID, FirstName, LastName, Department
        FROM Employees
        WHERE EmployeeID = @EmpID;

        IF @@ROWCOUNT = 0
        BEGIN
            RAISERROR('No employee found with the specified ID.', 16, 1);
        END
        -- End of your SQL statements
    END TRY
    BEGIN CATCH
        -- Error handling code
        DECLARE @ErrorMessage NVARCHAR(4000);
        DECLARE @ErrorSeverity INT;
        DECLARE @ErrorState INT;

        SELECT 
            @ErrorMessage = ERROR_MESSAGE(),
            @ErrorSeverity = ERROR_SEVERITY(),
            @ErrorState = ERROR_STATE();

        -- Print the error message
        PRINT @ErrorMessage;

        -- Raise the error again
        RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
    END CATCH
END;

Step 8.2: Execute the Stored Procedure with Error Handling

Try executing with an invalid EmployeeID to see the error handling in action:

EXEC GetEmployeeById_ErrorHandling @EmpID = 10;

This will display an error message indicating that no employee was found with the specified ID.

Conclusion

This comprehensive guide walks you through creating and executing stored procedures in SQL Server, including examples with and without parameters, modifying and dropping procedures, and basic error handling. Always refer to the official SQL Server documentation for more advanced features and best practices.

Top 10 Interview Questions & Answers on SQL Server Creating and Executing Stored Procedures

Top 10 Questions and Answers on SQL Server Creating and Executing Stored Procedures

1. What is a stored procedure in SQL Server?

Answer Example:

CREATE PROCEDURE GetEmployeeCount
AS
BEGIN
    SELECT COUNT(*) AS EmployeeCount FROM Employees;
END;
GO

2. How do you create a stored procedure in SQL Server?

To create a stored procedure in SQL Server, you use the CREATE PROCEDURE statement followed by the procedure name and any parameters it needs, along with the SQL logic inside a BEGIN...END block.

Answer Example:

CREATE PROCEDURE InsertEmployee
    @FirstName NVARCHAR(50),
    @LastName NVARCHAR(50),
    @DepartmentID INT
AS
BEGIN
    INSERT INTO Employees (FirstName, LastName, DepartmentID)
    VALUES (@FirstName, @LastName, @DepartmentID);
END;
GO

3. Can you create stored procedures with input/output parameters?

Yes, stored procedures can have both input and output parameters that help exchange data between the stored procedure and calling applications.

Answer Example:

CREATE PROCEDURE UpdateEmployeeName
    @EmployeeID INT,
    @NewFirstName NVARCHAR(50) OUTPUT,
    @NewLastName NVARCHAR(50) OUTPUT
AS
BEGIN
    UPDATE Employees SET FirstName = @NewFirstName, LastName = @NewLastName WHERE EmployeeID = @EmployeeID;
    SELECT @NewFirstName = FirstName, @NewLastName = LastName FROM Employees WHERE EmployeeID = @EmployeeID;
END;
GO

4. How do you execute a stored procedure that has input parameters?

Executing a stored procedure with input parameters is done using the EXEC or EXECUTE command followed by the procedure name and the parameter values.

Answer Example:

EXEC InsertEmployee @FirstName = 'John', @LastName = 'Doe', @DepartmentID = 1;

5. How do you handle errors within a SQL Server stored procedure?

You can handle errors within a stored procedure using TRY...CATCH blocks, which catch exceptions raised during the execution of the T-SQL code.

Answer Example:

CREATE PROCEDURE DeleteEmployee
    @EmployeeID INT
AS
BEGIN
    BEGIN TRY
        DELETE FROM Employees WHERE EmployeeID = @EmployeeID;
        PRINT 'Employee deleted successfully.';
    END TRY
    BEGIN CATCH
        PRINT 'Error occurred: ' + ERROR_MESSAGE();
    END CATCH
END;
GO

6. Can you create nested stored procedures in SQL Server?

No, SQL Server does not support true nested stored procedures where the inner procedure is fully contained within the outer procedure’s definition. However, you can call one stored procedure from within another.

Answer Example:

CREATE PROCEDURE HighLevelProcedure
AS
BEGIN
    EXEC DeleteEmployee @EmployeeID = 1;
    PRINT 'Higher level procedure executed';
END;
GO

7. How do you grant permission to execute a stored procedure in SQL Server?

You can grant execute permission on a stored procedure to a user or role using the GRANT statement.

Answer Example:

GRANT EXECUTE ON ProcedureName TO UserName;
-- OR
GRANT EXECUTE ON ProcedureName TO RoleName;

8. How do you modify an existing stored procedure in SQL Server?

To modify an existing stored procedure, use the ALTER PROCEDURE statement.

Answer Example:

ALTER PROCEDURE InsertEmployee
    @FirstName NVARCHAR(50),
    @LastName NVARCHAR(50),
    @DepartmentID INT
AS
BEGIN
    INSERT INTO Employees (FirstName, LastName, DepartmentID)
    VALUES (@FirstName, @LastName, @DepartmentID);
    SELECT 'Employee inserted successfully' as Message;
END;
GO

9. How do you delete a stored procedure from the database in SQL Server?

You can delete a stored procedure from the database using the DROP PROCEDURE statement.

Answer Example:

DROP PROCEDURE IF EXISTS InsertEmployee;

10. What are the advantages of using stored procedures?

The advantages of using stored procedures include:

  • Performance: Stored procedures are compiled once and stored in an executable form in the database, reducing parsing time.
  • Security: They can provide a layer of security through roles and permissions, making it possible to limit user access directly to tables.
  • Code Reusability: They can be called multiple times and from different programs, promoting modular and reusable code.
  • Maintenance: Changes made to stored procedures can propagate without altering the application logic.
  • Reduced Network Traffic: Sending a single command name, rather than numerous SQL statements, reduces network traffic.

You May Like This Related .NET Topic

Login to post a comment.