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 = 1EXEC 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 MasterCREATE 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