SQL Server: Procedures

Learn how to create and drop procedures in SQL Server (Transact-SQL) with syntax and examples.

What is a procedure in SQL Server?

In SQL Server, a procedure is a stored program that you can pass parameters into. It does not return a value like a function does. However, it can return a success/failure status to the procedure that called it.

Create Procedure

You can create your own stored procedures in SQL Server (Transact-SQL). Let’s take a closer look.

Syntax

The syntax to create a stored procedure in SQL Server (Transact-SQL) is:

CREATE { PROCEDURE | PROC } [schema_name.]procedure_name
   [ @parameter [type_schema_name.] datatype 
     [ VARYING ] [ = default ] [ OUT | OUTPUT | READONLY ]
   , @parameter [type_schema_name.] datatype
     [ VARYING ] [ = default ] [ OUT | OUTPUT | READONLY ] ]

[ WITH { ENCRYPTION | RECOMPILE | EXECUTE AS Clause } ]
[ FOR REPLICATION ]

AS

BEGIN
   [declaration_section]

   executable_section

END;
schema_name
The name of the schema that owns the stored procedure.
procedure_name
The name to assign to this procedure in SQL Server.
@parameter
One or more parameters passed into the procedure.
type_schema_name
The schema that owns the data type, if applicable.
datatype
The data type for @parameter.
VARYING
It is specified for cursor parameters when the result set is an output parameter.
default
The default value to assign to @parameter.
OUT
It means that @parameter is an output parameter.
OUTPUT
It means that @parameter is an output parameter.
READONLY
It means that @parameter can not be overwritten by the stored procedure.
ENCRYPTION
It means that the source for the stored procedure will not be stored as plain text in the system views in SQL Server.
RECOMPILE
It means that a query plan will not be cached for this stored procedure.
EXECUTE AS clause
It sets the security context to execute the stored procedure.
FOR REPLICATION
It means that the stored procedure is executed only during replication.

Example

Let’s look at an example of how to create a stored procedure in SQL Server (Transact-SQL).

The following is a simple example of a procedure:

CREATE PROCEDURE FindSite
  @site_name VARCHAR(50) OUT

AS

BEGIN

   DECLARE @site_id INT;

   SET @site_id = 8;

   IF @site_id < 10
      SET @site_name = 'TechOnTheNet.com';
   ELSE
      SET @site_name = 'CheckYourMath.com';

END;

This procedure is called FindSite. It has one parameter called @site_name which is an output parameter that gets updated based on the variable @site_id.

You could then reference the new stored procedure called FindSite as follows:

USE [test]
GO

DECLARE @site_name varchar(50);

EXEC FindSite @site_name OUT;

PRINT @site_name;

GO

Drop Procedure

Once you have created your procedure in SQL Server (Transact-SQL), you might find that you need to remove it from the database.

Syntax

The syntax to a drop a stored procedure in SQL Server (Transact-SQL) is:

DROP PROCEDURE procedure_name;
procedure_name
The name of the stored procedure that you wish to drop.

Example

Let’s look at an example of how to drop a stored procedure in SQL Server.

For example:

DROP PROCEDURE FindSite;

This DROP PROCEDURE example would drop the stored procedure called FindSite.