SQL Server 存储过程(一)

来源:互联网 发布:四知太守后人 编辑:程序博客网 时间:2024/06/05 10:57

打开数据库,找到master库,如下图,在系统存储过程中有很多系统的



比如有一个 sys.sp_databases。我们新建查询下。
输入 exec  sys.sp_databases(exec 执行)



查询结果里会显示出我数据库里所有的databases


想要写存储过程,可以参考系统下的帮助文档。。
exec sys.sp_helptext  sp_databases
执行结果下的text里有具体怎么写的。


第一行的create procedure sys.sp_databases 中sp_databases  (如果自己创建一般是以usp_开始)

下面写一个简单点的创建存储过程

比如我在数据库(Huawei)下的 =》可编程性  =》存储过程 右键 》新建存储过程

会出现如下图:


这是一个模板,告诉你怎么写的。

修改从21行开始 :

CREATE PROCEDURE是创建过程 后面加上存储过程名

下面的@Param1,@Param2等,是添加参数。 AS BEGIN后面是具体执行的操作。

代码如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE usp_wmh
-- Add the parameters for the stored procedure here
@num1 int,
@num2 int,
@result int output     --output类似于C#中传参时的ref、out中的out

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
--SET NOCOUNT ON;(当 SET NOCOUNT 为 ON 时,不返回计数
--当 SET NOCOUNT 为 OFF 时,返回计数。)


    -- Insert statements for procedure here
SELECT @num1+@num2
set @result=@num1-@num2

END
GO

执行,刷新    可以看到左边生成了一个名为usp_wmh的存储过程。。

--调用① 直接传参
declare @s int
exec usp_wmh 10,2,@s output
select @s

执行》》


--调用② 间接传参
declare @n1 int,@n2 int,@s int
set @n1=10
set @n2=2
exec usp_wmh @num1=@n1,@num2=@n2,@result=@s output
select @s

执行》》


查询结果一致。 结果一是存储过程里的  SELECT @num1+@num2    结果二是set @result=@num1-@num2



0 0
原创粉丝点击