Microsoft SQL Server 创建并执行基本的存储过程

示例

使用Authors库数据库中的表

CREATE PROCEDURE GetName

(

    @input_id INT = NULL,      --Input parameter,  id of the person, NULL default

    @name VARCHAR(128) = NULL  --Input parameter, name of the person, NULL default

AS

BEGIN 

    SELECT Name + ' is from ' + Country 

    FROM Authors 

    WHERE Id = @input_id OR Name = @name

END 

GO

您可以使用几种不同的语法执行过程。首先,您可以使用EXECUTE或EXEC

EXECUTE GetName @id = 1

EXEC Getname @name = 'Ernest Hemingway'

此外,您可以省略EXEC命令。另外,在传递所有参数时,您不必指定传递的参数。

GetName NULL, 'Ernest Hemingway'

如果要以与过程中声明的顺序不同的顺序指定输入参数,则可以指定参数名称并分配值。例如

 CREATE PROCEDUREdbo.sProcTemp

 (

    @Param1 INT,

    @Param2 INT

)

AS

BEGIN

    SELECT

        Param1 = @Param1,

        Param2 = @Param2

END

通常执行此过程的顺序是先为@ Param1指定值,然后为@ Param2指定值。所以看起来像这样

  EXECdbo.sProcTemp@Param1 = 0,@Param2=1

但是也可以使用以下内容

  EXECdbo.sProcTemp@Param2 = 0,@Param1=1

在此,您要先指定@ param2的值,然后再指定@ Param1的值。这意味着您不必保持与过程中声明的顺序相同的顺序,但是可以根据需要保留任何顺序。但您需要指定将值设置为哪个参数

从任何数据库访问存储过程

而且sp_,由于SQL Server的默认行为,您可以创建带有这些过程前缀的过程,就像所有系统存储过程一样,无需指定数据库即可执行。当您执行以“ sp_”开头的存储过程时,SQL Server首先在master数据库中查找该过程。如果在master中找不到该过程,它将在活动数据库中查找。如果您有一个要从所有数据库访问的存储过程,请在master数据库中创建它,并使用包含“ sp_”前缀的名称。

Use Master

CREATE PROCEDURE sp_GetName

(

    @input_id INT = NULL,      --Input parameter,  id of the person, NULL default

    @name VARCHAR(128) = NULL  --Input parameter, name of the person, NULL default

AS

BEGIN 

    SELECT Name + ' is from ' + Country 

    FROM Authors 

    WHERE Id = @input_id OR Name = @name

END 

GO

           

以上是 Microsoft SQL Server 创建并执行基本的存储过程 的全部内容, 来源链接: utcz.com/z/354218.html

回到顶部