gpt4 book ai didi

SQL Server存储过程入门学习

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SQL Server存储过程入门学习由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

存储过程的定义.

存储过程(Stored Procedure),是一组为了完成特定功能的SQL 语句,集经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数,如果该存储过程带有参数来执行。 在SQL Server 的系列版本中,存储过程分为两类:系统提供的存储过程和用户自定义存储过程。系统SP,主要存储master 数据库中,并以sp_为前缀并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理SQL Server。 用户自定义存储过程是由用户创建,并能完成某一特定功能,如:查询用户所需数据信息的存储过程.

这里我们看看存储过程的好处; 。

(1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。 (2)提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。 (3)减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。 (4)安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程.

好了,我们来看看创建的基本语法 。

定义存储过程的语法 。

CREATEPROC[EDURE]存储过程名 @参数1数据类型=默认值, …… , @参数n数据类型OUTPUT AS SQL语句 GO 参数是可选的 参数分为输入参数、输出参数 输入参数允许有默认值 这里来创建一个简单的存储过程 。

CREATE PROCEDURE UserLogin@name varchar(20),@password varchar(20) AS -- 定义一个临时用来保存密码的变量--DECLARE @strPwd NVARCHAR(20) 这里先不介绍变量。稍后的文章会详细讲到BEGINselect * from userinfo where userName=@name and userPass=@passwordENDGO 首先我们用简单的sql查询 select * from userinfo where userName='admin' 查询结果: --------------------- UserName UserPass Admin Admin 。

现在我们来执行我们的存储过程 exec UserLogin admin,admin --或这样调用: EXEC UserLogin @name='admin',@password='admin' 。

查询结果: --------------------- UserName UserPass Admin Admin 。

注意,在SQL SERVER中,所有用户定义的变量都以“@”开头,OUTPUT关键字表示这个参数是用来输出的,AS之后就是存储过程内容了。只要将以上代码在“查询分析器”里执行一次,SQL SERVER就会在当前数据库中创建一个名为“UserLogin”的存储过程。你可以打开“企业管理器”,选择当前操作的数据库,然后在左边的树型列表中选择"可编程性->存储过程",此时就可以在右边的列表中看到你刚刚创建的存储过程了(如果没有,刷新一下即可)。 看到了在数据中调用存储过程的方法有两种(这里EXEC与EXECUTE等效); 。

EXEC过程名 参数值1,参数值2,.... 。

或者 。

EXEC 参数1=参数值1,参数2=参数值2.... 。

上面我们也看到了.

创建这样的存储过程有什么用呢,不是只能在数据中查看赛。 我们在做web或者winform 程序,假设需要个登录,好,我们可以调用用这个存储过程来登录,根据传入的参数,如果查询出来有记录,那么这条记录在数据库中存在,表示登录成功,否则失败。 这样做的目的更加安全,可以防止sql注入.

最后此篇关于SQL Server存储过程入门学习的文章就讲到这里了,如果你想了解更多关于SQL Server存储过程入门学习的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com