如何掌握Sql Server存储过程,哪些知识要了解
如何掌握Sql Server存储过程,哪些知识要了解
上一篇:SQL 游标有什么优缺点如何掌握Sql Server存储过程,哪些知识要了解,具体如何使用下一篇:SQL 表压缩类型有什么sql server存储过程语法,怎么做
这篇文章主要介绍了如何掌握Sql 存储过程,哪些知识要了解相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何掌握Sql 存储过程,哪些知识要了解文章都会有所收获,下面我们一起来看看吧。
从存储过程返回数据 – SQL | 官方文档
存储过程它是真正的脚本,更准确地说,它是批处理(batch),但都不是很确切,它存储与数据库而不是单独的文件中。
存储过程中有输入参数sql server存储过程语法,输出参数以及返回值等。
一、创建存储过程: PROC
创建存储过程的方法除了他使用AS关键字外,和创建数据库中任何其他对象一样。存储过程的基本语法如下:
在语法中,PROC是的缩写,两个选项的意思一样。在对存储过程命名完之后,接着是参数列表。参数是可选的。关键字AS其后就是实际的代码。
CREATE PROCEDURE|PROC
[ [schema.] [VARYING] [=] [OUT[PUT]] [READONLY]
[, [schema.] [VARYING] [=] [OUT[PUT]] [READONLY]
[,...
...
]]
[WITH
RECOMPILE | ENCRYPTION | [EXECUTE AS { CALLER | SELF | OWNER | }]
AS
| EXTERNAL NAME ..
简单的存储过程示例:
CREATE PROC spPerson
AS
SELECT * FROM Person
执行存储过程:
EXEC spPerson
1、声明参数
声明参数需要以下几部分的信息:名称、数据类型 、默认值 、方向、
对于名称,有一组简单的规则。
其语法如下所示:
@parameter_name [AS] datatype [=default|NULL] [VARYING] [OUTPUT | OUT]
一个需要传入参数的存储过程示例:
CREATE PROC spName @Name nvarchar(50) AS SELECT Name FROM Person WHERE Name LIKE @Name + '%';
执行存储过程:
EXEC spName '酒';
2、提供默认值
在默认值方面,参数与变量不同。对于同样的情况,变量一般初始化为NULL值,而参数不是。事实上,如果不提供默认值,则会假设参数是必须的,并且当调用存储过程时需要提供一个初始值。
为了使参数是可选的,必须提供默认值。方法是在数据类型后在逗号之前添加"="符号和作为默认值的值。这样,存储过程的用户可以有决定对此参数不提供值或是提供他们自己的值。
创建一个存储过程如下:
CREATE PROC spName
@Name nvarchar(50) = NULL
AS
IF @Name IS NOT NULL
SELECT * FROM Person WHERE NAME = @Name
ELSE
SELECT * FROM Person WHERE Id = 45
执行如下语句:
EXEC spName EXEC spName '如意刀狼'
输出结果如下:
3、输出参数

一个获得参数的存储过程:
CREATE PROC InsertPerson
@Id int OUTPUT --必须注明为OUTPUT
AS
INSERT INTO Person VALUES('刘备',22,190,'不详','未婚','幼儿园','不详',4999999)
SET @Id = @@IDENTITY
执行存储过程:
DECLARE @Id int --实际上,调用时名称可以不同,例如也可以为@Num,@i等等。 EXEC InsertPerson @Id OUTPUT --注意此处也要有OUTPUT SELECT @Id
4、返回值。返回值必须是整数。
返回值可用来确定存储过程执行的状态。
SQL 默认会在完成存储过程时自动返回一个0值。
为了从存储过程向调用代码传递返回值,只需要使用语句。
RETURN []
要特别注意的是:返回值必须是整数。
关于语句,最重要的是知道它是无条件地从存储过程中退出的。无论运行到存储过程的哪个位置如何掌握Sql Server存储过程,哪些知识要了解,在调用语句之后将不会执行任何一行代码。
下面的存储过程,让其返回一个指定的值,以指示执行状态。
CREATE PROC spTestReturns AS DECLARE @MyMessage nvarchar(50); DECLARE @MyOtherMessage nvarchar(50); SELECT @MyMessage = '第一个RETURN'; PRINT @MyMessage; RETURN 100; --将这里改成返回100 SELECT @MyOtherMessage = '第二个RETURN'; PRINT @MyOtherMessage; RETURN;
执行之后,显示结果如下:
DECLARE @Return int EXEC @Return = spTestReturns //第一个RETURN SELECT @Return //返回100
5、执行存储过程:
对于调用存储过程需要注意以下几点:
6、WITH 选项
可以利用存储过程提供的安全性代码和代码封装方面的好处,但还是忽略了预编译代码方面的影响。可以回避未使用正确的查询计划的问题,因为可以确保为特定一次运行创建新的计划。方法就是使用WITH 选项。
使用该选项的方式有两种:
1、可以在运行时包含WITH 。这告诉SQL 抛弃已有的执行计划并且创建一个新的计划-但只是这一次。也就是说,只是这次使用WITH 选项来执行存储过程。
EXEC spMySproc '1/1/2004'
WITH RECOMPILE
2、也可以通过在存储过程中包含WITH 选项来使之变得更持久。
如果使用这种方式,则在 PROC或ALTER PROC语句中的AS语句前添加WITH 选项即可。如果通过该选项创建存储过程,那么无论在运行时选择了其他什么选项,每次运行存储过程都会重新编译它。
二、修改存储过程:ALTER PROC
ALTER PROC spPerson AS SELECT * FROM Person WHERE Id = 45
三、删除存储过程:DROP PROC
DROP PROC|PROCEDURE [;]
四、常用存储过程 1、: 查询表的信息
sp_help Person

看一张表有那些信息sql server存储过程语法,有约束,存储过程,自定义函数等等信息。
2、: 查看数据库信息
sp_helpdb TestDataCenter
当然也可以不带参数,显示当前数据库连接下的所有数据库信息。
这张图几乎包含了数据库的所有信息了。有了这张图,想了解一个数据库的信息就简单了。
3、: 查看有关表或视图上的索引的信息
sp_helpindex Person
注意参数中是表名,上面的就是表名,而不是索引名称。
4、: 查看表上的约束信息
sp_helpconstraint Person
注意参数是表名。
5、: 根据文件逻辑名称, 查看文件的信息
sp_helpfile TestDataCenter
注意参数是文件的逻辑名称。也可以不带参数,输出当前数据库的所有文件信息。
6、: 根据文件组名称,查看文件组信息
sp_helpfilegroup 'PRIMARY'
参数名中是文件组的逻辑名称,当然也可以不带参数,这样就仅仅输出当前数据库的文件组信息。
显示结果如下:
7、:显示默认值、未加密的 -SQL 存储过程、用户定义 -SQL 函数、触发器、计算列、CHECK 约束灯等的定义。
sp_helptext spName
返回的是什么?就是定义的代码。
到此这篇关于“如何掌握Sql 存储过程,哪些知识要了解”的文章就介绍到这了,更多相关如何掌握Sql 存储过程,哪些知识要了解内容,欢迎关注群英网络技术资讯频道,小编将为大家输出更多高质量的实用文章!

1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299
资源库 - 资源分享下载网 » 如何掌握Sql Server存储过程,哪些知识要了解
常见问题FAQ
- 关于资源售价和售后服务的说明?
- 代码有没有售后服务和技术支持?
- 有没有搭建服务?
- 链接地址失效了怎么办?
- 关于解压密码

