SQL
SQL
SQL
SQL SERVER
SERVER
SERVER
SERVER
存储过程学习笔记
将常用的或很复杂的工作 , 预先用 SQL 语句写好并用一个指定的名称存储起来 , 那么以后
要叫数据库提供与已定义好的存储过程的功能相同的服务时 , 只需调用 execute, 即可自动
完成命令。
存储过程的优点
1.
存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般
SQ L
语句每执行一次就编译一次 , 所以使用存储过程可提高数据库执行速度。
2. 当对数据库进行复杂操作时 ( 如对多个表进行 Update,Insert,Query,Delete 时 ) ,可将
此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3. 存储过程可以重复使用 , 可减少数据库开发人员的工作量
4. 安全性高 , 可设定只有某此用户才具有对指定存储过程的使用权
创建存储过程
**********************************************
***
语法
CREATE
CREATE
CREATE
CREATE PROC[
PROC[
PROC[
PROC[ EDURE
EDURE
EDURE
EDURE ]
]
]
] [
[
[
[
owner
owner
owner
owner
.
.
.
. ]
]
]
]
procedure_name
procedure_name
procedure_name
procedure_name
[
[
[
[ ;
;
;
;
number
number
number
number
]
]
]
]
[
[
[
[ {
{
{
{ @
@
@
@
parameter
parameter
parameter
parameter data_type
data_type
data_type
data_type
}
}
}
}
[
[
[
[ VARYING
VARYING
VARYING
VARYING ]
]
]
] [
[
[
[ =
=
=
=
default
default
default
default
]
]
]
] [
[
[
[ OUTPUT
OUTPUT
OUTPUT
OUTPUT ]
]
]
]
]
]
]
] [
[
[
[ ,...
,...
,...
,...
n
n
n
n
]
]
]
]
[
[
[
[ WITH
WITH
WITH
WITH
{
{
{
{ RECOMPILE
RECOMPILE
RECOMPILE
RECOMPILE |
|
|
| ENCRYPTION
ENCRYPTION
ENCRYPTION
ENCRYPTION |
|
|
| RECOMPILE
RECOMPILE
RECOMPILE
RECOMPILE ,
,
,
, ENCRYPTION
ENCRYPTION
ENCRYPTION
ENCRYPTION }
}
}
} ]
]
]
]
[
[
[
[ FOR
FOR
FOR
FOR REPLICATION
REPLICATION
REPLICATION
REPLICATION ]
]
]
]
AS
AS
AS
AS
sql_statement
sql_statement
sql_statement
sql_statement
[
[
[
[ ...
...
...
...
n
n
n
n
]
]
]
]
参数
owner
拥有存储过程的用户 ID 的名称 。
owner
必须是当前用户的名称或当前用户所属的角