# SQL Stored Procedures for SQL Server

### What is a Stored Procedure?

A stored procedure is a prepared SQL code that you can save, so the code can be reused over and over again.

So if you have an SQL query that you write over and over again, save it as a stored procedure, and then just call it to execute it.

You can also pass parameters to a stored procedure, so that the stored procedure can act based on the parameter value(s) that is passed.

#### Stored Procedure Syntax

```sql
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
```

#### Execute a Stored Procedure

```sql
EXEC procedure_name;
```

### Demo Database

Below is a selection from the "Customers" table in the Northwind sample database:<br>

![](https://826093633-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LS8lPNzCGPR5-DLbGXv%2F-LScGZVQvp6j4KP4HiKl%2F-LScHOX9X7BjtGrI2OGV%2Fimage.png?alt=media\&token=2b20a1ec-937e-4f6e-b2c3-885fd5772b1f)

\
**Stored Procedure**&#x20;

The following SQL statement creates a stored procedure named "SelectAllCustomers" that selects all records from the "Customers" table:

```sql
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

```

Execute the stored procedure above as follows:

```sql
EXEC SelectAllCustomers;
```

**Stored Procedure With One Parameter**

The following SQL statement creates a stored procedure that selects Customers from a particular City from the "Customers" table:

```sql
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO
```

Execute the stored procedure above as follows:

```sql
EXEC SelectAllCustomers City = "London";
```

Stored Procedure With Multiple Parameters

Setting up multiple parameters is very easy. Just list each parameter and the data type separated by a comma as shown below.

The following SQL statement creates a stored procedure that selects Customers from a particular City with a particular PostalCode from the "Customers" table:

```sql
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30),
 @PostalCode nvarchar(10)
SELECT * FROM Customers WHERE City = 
@City AND PostalCode = @PostalCode
GO;
```

Execute the stored procedure above as follows:

```sql
EXEC SelectAllCustomers City = "London", PostalCode = "WA1 1DP";
```

\
\
\
\
\ <br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gyansetu-sql.gitbook.io/sql-programming/sql-stored-procedures-for-sql-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
