给存储过程传值

发表于:2007-06-30来源:作者:点击数: 标签:
给存储过程传值 当你调用一个存储过程时,你可以使用参数来传值给它,从而使你的存储过程变得非常的灵活。比如,你想修改过程check_philosophers,使之能够检测是否存在某一个哲学家。你可以使用如下的语句进行修改: CREATE PROCEDURE check_philosophers (

给存储过程传值

当你调用一个存储过程时,你可以使用参数来传值给它,从而使你的存储过程变得非常的灵活。比如,你想修改过程check_philosophers,使之能够检测是否存在某一个哲学家。你可以使用如下的语句进行修改:

CREATE PROCEDURE check_philosophers

(@philosopher VARCHAR(30))

AS

IF EXISTS(SELECT name FROM Philosophers WHERE )

PRINT “A philosopher”

ELSE

PRINT “Not a philisopher”

当该过程执行时,它检查传递给变量@philosopher的姓名是否存在于表Philosophers中。假如@philosopher的值存在于表中,打印文本“A philosopher”,否则打印文本“Not a philisopher”

当你在存储过程中包含参数时,你把它们列在CREATE PROCEDURE语句的后面的括号内,但必须在关键词AS之前。对于每一个参数,你都必须指明数据类型。在一个单独的过程中,你最多能设置255个参数。比如下面的过程检查是否在传递的姓名当中,至少有一个是哲学家的姓名:

CREATE PROCEDURE check_philosophers

(@firstname VARCHAR(30),@secondname VARCHAR(30))

AS

IF EXISTS(SELECT name FROM Philosophers

WHERE firstname OR name=@secondname)

PRINT “At least one of them is a philosopher”

ELSE

PRINT “Neither one of them is a philisopher”

为了执行一个具有一个或多个参数的存储过程,你只需简单地在存储过程名称的后面列出参数的值。比如下面的语句检查Plato和Aristotle中是否至少有一个是哲学家:

EXECUTE check_philisophers “Plato”,”Aristotle”

假如一个存储过程具有多个参数。你必须以正确的顺序来传值。有时候这并不是很方便。你可以使用另一种方法,通过名称来传递参数,如下所示:

EXECUTE check_philisophers @firstname=“Plato”, @secondname=”Aristotle”

该语句完成于前一语句完全相同的事情。然而通过使用参数名,你可以使用任何你想要的顺序来传递参数。

原文转自:http://www.ltesting.net