存储过程语法知识1

上一篇 / 下一篇  2008-04-28 14:23:09 / 个人分类:数据库

,?#oZF'Hn G0CREATE PROCEDURE
N4E oJ!@ \ z1F vg+k0创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。也可以创建在 Microsoft SQL Server启动时自动运行的存储过程。

U,dB} XET Ig ZS0

z+}j;Cq/G#m0语法
yUZo$MN0CREATE PROC [ EDURE ] procedure_name [ ; number ]
p3E??1yM0    [ { @parameter data_type }
*d2o z^at0        [ VARYING ] [ = default ] [ OUTPUT ]
I^V(Ya%X#ew o0    ] [ ,...n ]

]#h0tTm051Testing软件测试网%TvavTx

[ WITH
A#t @#emR0    { RECOMPILE ENCRYPTION RECOMPILE , ENCRYPTION } ]51Testing软件测试网&Rae |7Z S

51Testing软件测试网ea6Q m3f

[ FOR REPLICATION ]

0^D$}&OA1P0

-XoQ!?"I\yY0AS sql_statement [ ...n ]51Testing软件测试网%`)},F!C f&^xgWBM7UN

51Testing软件测试网#c8~5`\9Cw#f'Y[k

51Testing软件测试网 Ou h VX!w1o
参数
4Wt$h D{b:A)A0procedure_name51Testing软件测试网t%X|f*e;Wf

jq"Mlw\CT8b'v0    新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。有关更多信息,请参见使用标识符。
ddyx*C Nj0    要创建局部临时过程,可以在 procedure_name 前面加一个编号符 (#procedure_name),要创建全局临时过程,可以在 procedure_name 前面加两个编号符 (##procedure_name)。完整的名称(包括 # 或 ##)不能超过 128 个字符。指定过程所有者的名称是可选的。

7{$@T7s$H#aT@!x/r051Testing软件测试网j.nOxFiEm7`K(j'r

;number
%@_rDIr9r T k0    是可选的整数,用来对同名的过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在 procedure_name 前后使用适当的定界符。51Testing软件测试网4K,k6W3u.i

&V!MY'J+LCX0@parameter

%UUq`+M%c051Testing软件测试网SJ0PN%v

过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有 2.100 个参数。51Testing软件测试网V |Z$n~;[6UH'Q6ak

51Testing软件测试网/a}y@7zSh

使用 @ 符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其它过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其它数据库对象的名称。有关更多信息,请参见 EXECUTE。

d'hD Xyi J0

!Ft D.u#jS'_{%f0data_type51Testing软件测试网-B7|q Oh%j ovJ9I

N,Er/A5j5O0参数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字。有关 SQL Server 提供的数据类型及其语法的更多信息,请参见数据类型。51Testing软件测试网(k+KU-zq*z'F LM(R

51Testing软件测试网.AT"[)~G$w;|pvxE-x%b

51Testing软件测试网%K&Y;\ @` u"nY)Q)j
说明 对于可以是 cursor 数据类型的输出参数,没有最大数目的限制。

-JJ9k\ S zG)S+kF0

e._$s3s4K3D5P051Testing软件测试网D-F!z3Y V
VARYING

6?2r@%iJ.Yq2|G6MG C051Testing软件测试网tg:^(Lg%S C-mK

指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。

s5nUL#k4\ y m0

/~w6o!hj0default

C1h'w n.^N6K0

`6ii(bO!W2U7NvZ0参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认值必须是常量或 NULL。如果过程将对该参数使用 LIKE 关键字,那么默认值中可以包含通配符(*、_、[] 和 [^])。51Testing软件测试网~ [$YV#]

Lf@l.MMK0OUTPUT51Testing软件测试网'JCM-jk1oo2E

v9z*I0LD Q*W]%T'D0表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符。51Testing软件测试网!QdbU _ve6i aS ?S

+Y/g6h{:h:HM0n

p;t0s)P)D s3d0

's tDN;O$r|K,q0表示最多可以指定 2.100 个参数的占位符。51Testing软件测试网P H[m#c5`!bB

51Testing软件测试网$?y4_9cB0Go.u r

{RECOMPILE ENCRYPTION RECOMPILE, ENCRYPTION}51Testing软件测试网!O$X,tTv#Y

51Testing软件测试网`EY`z,|%L

RECOMPILE 表明 SQL Server 不会缓存该过程的计划,该过程将在运行时重新编译。在使用非典型值或临时值而不希望覆盖缓存在内存中的执行计划时,请使用 RECOMPILE 选项。

4y7Ljh7t6QgY051Testing软件测试网3`,_.U7tt;p2f!?(C

ENCRYPTION 表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 语句文本的条目。使用 ENCRYPTION 可防止将过程作为 SQL Server 复制的一部分发布。51Testing软件测试网rl#kf1zdr#bN


TAG: 数据库

guchenggao的个人空间 引用 删除 guchenggao   /   2012-05-30 18:13:04
5
 

评分:0

我来说两句

Open Toolbar