📄 12-2-10.cfm.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>给存储过程传值</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋体"><b>
<p ALIGN="JUSTIFY">给存储过程传值</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">当你调用一个存储过程时,你可以使用参数来传值给它,从而使你的存储过程变得非常的灵活。比如,你想修改过程check_philosophers,使之能够检测是否存在某一个哲学家。你可以使用如下的语句进行修改:</p>
<p ALIGN="JUSTIFY">CREATE PROCEDURE check_philosophers</p>
<p ALIGN="JUSTIFY">(@philosopher VARCHAR(30))</p>
<p ALIGN="JUSTIFY">AS </p>
<p ALIGN="JUSTIFY">IF EXISTS(SELECT name FROM Philosophers WHERE </font><a
HREF="mailto:name=@philosopher"><font FACE="宋体" SIZE="3" COLOR="#0000ff"><u>name=@philosopher</u></font></a><font
FACE="宋体" SIZE="3">)</p>
<p ALIGN="JUSTIFY">PRINT </font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">A
philosopher</font><font SIZE="3">”</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">ELSE</p>
<p ALIGN="JUSTIFY">PRINT </font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">Not
a philisopher</font><font SIZE="3">”</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">当该过程执行时,它检查传递给变量@philosopher的姓名是否存在于表Philosophers中。假如@philosopher的值存在于表中,打印文本</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">A philosopher</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">,否则打印文本</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Not a philisopher</font><font SIZE="3">”</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">当你在存储过程中包含参数时,你把它们列在CREATE
PROCEDURE语句的后面的括号内,但必须在关键词AS之前。对于每一个参数,你都必须指明数据类型。在一个单独的过程中,你最多能设置255个参数。比如下面的过程检查是否在传递的姓名当中,至少有一个是哲学家的姓名:</p>
<p ALIGN="JUSTIFY">CREATE PROCEDURE check_philosophers</p>
<p ALIGN="JUSTIFY">(@firstname VARCHAR(30),@secondname VARCHAR(30))</p>
<p ALIGN="JUSTIFY">AS </p>
<p ALIGN="JUSTIFY">IF EXISTS(SELECT name FROM Philosophers </p>
<p ALIGN="JUSTIFY">WHERE </font><a HREF="mailto:name=@philosopher"><font FACE="宋体"
SIZE="3" COLOR="#0000ff"><u>name=@</u></font></a><font FACE="宋体" SIZE="3">firstname OR
name=@secondname)</p>
<p ALIGN="JUSTIFY">PRINT </font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">At
least one of them is a philosopher</font><font SIZE="3">”</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">ELSE</p>
<p ALIGN="JUSTIFY">PRINT </font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">Neither
one of them is a philisopher</font><font SIZE="3">”</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">为了执行一个具有一个或多个参数的存储过程,你只需简单地在存储过程名称的后面列出参数的值。比如下面的语句检查Plato和Aristotle中是否至少有一个是哲学家:</p>
<p ALIGN="JUSTIFY">EXECUTE check_philisophers </font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Plato</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">,</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">Aristotle</font><font SIZE="3">”</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">假如一个存储过程具有多个参数。你必须以正确的顺序来传值。有时候这并不是很方便。你可以使用另一种方法,通过名称来传递参数,如下所示:</p>
<p ALIGN="JUSTIFY">EXECUTE check_philisophers @firstname=</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Plato</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">,
@secondname=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">Aristotle</font><font
SIZE="3">”</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">该语句完成于前一语句完全相同的事情。然而通过使用参数名,你可以使用任何你想要的顺序来传递参数。</p>
</font>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -