SQL 教程

SQL 教程 SQL 简介 SQL 语法 SQL Select SQL Select Distinct SQL Where SQL And, Or, Not SQL Order By SQL Insert Into SQL Null Values SQL Update SQL Delete SQL Select Top SQL Min 和 Max SQL Count, Avg, Sum SQL Like SQL 通配符 SQL In SQL Between SQL 别名 SQL 联接 SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL 自联接 SQL Union SQL Group By SQL Having SQL Exists SQL Any, All SQL Select Into SQL Insert Into Select SQL Case SQL Null 函数 SQL 存储过程 SQL 注释 SQL 运算符

SQL 数据库

SQL 创建数据库 SQL 删除数据库 SQL 数据库备份 SQL Create Table SQL Drop Table SQL Alter Table SQL 约束 SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL 自动增量 SQL 日期 SQL 视图 SQL 注入 SQL 托管 SQL 数据类型

SQL 参考手册

SQL 关键字 MySQL 函数 SQL Server 函数 MS Access 函数 SQL 快速参考手册

SQL 实例

SQL 实例 SQL 测验 SQL 练习


SQL Server 存储过程

什么是存储过程?

存储过程是一个可以保存的准备好的SQL代码,因此代码可以反复使用。

因此,如果您有一个反复编写的SQL查询,请将其保存为存储过程,然后调用它来执行它。

还可以将参数传递给存储过程,以便存储过程可以根据传递的参数值进行操作。

存储过程语法

CREATE PROCEDURE procedure_name
AS
sql_statement
GO;

执行存储过程

EXEC procedure_name;

演示数据库

以下是从 Northwind 示例数据库的 "客户(Customers)" 表中查询的内容:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

存储过程实例

以下SQL语句创建一个名为"SelectAllCustomers"的存储过程,该过程从"Customers"表中选择所有记录:

实例

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

按如下方式执行上述存储过程:

实例

EXEC SelectAllCustomers;


带参数的存储过程

以下SQL语句创建一个存储过程,从"Customers"表中选择特定城市的客户:

实例

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

按如下方式执行上述存储过程:

实例

EXEC SelectAllCustomers @City = 'London';

多参数存储过程

设置多个参数非常简单。只需列出每个参数和用逗号分隔的数据类型,如下所示。

以下SQL语句创建了一个存储过程,用于从"Customers"表中选择来自特定城市且具有特定PostalCode的客户:

实例

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

按如下方式执行上述存储过程:

实例

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';