SQL Server存储过程编程经验技巧(转)

sql server 如何写存储过程 SQL Server中,编写存储过程是一个常见的操作,用于封装一组SQL语句,以便多次重用、优化性能以及提高安全性。下面是一个基本的存储过程编写示例,包括创建存储过程、定义参数(可选)、编写SQL语句以及执行存储过程的步骤。 阅读详情
MS SQL Server目前正日益成为WindowNT操作系统上面最为重
  MS SQL Server2000的推出,微软的这种数据库服务系统真正的实现了
  0系列操作系统一统天下的局面,在微软的操作系统上面,没有任何一种数据库系统能与
  头羊甲骨文公司的看家数据库系统Oracle在内。不可否认,MS SQL Ser
  在微软自己的操作系统上面,这一点是MS SQL Server的致命伤口。但在另
  促使MS SQL Server在自己仅有的“土地”上面将自己的功能发挥到了极至
  wsNT系列操作系统的各种潜能!作为MS SQL Server数据库系统中很重
  理的使用存储过程,可以有效的提高程序的性能;并且将商业逻辑封装在数据库系统中的
  软件系统的可维护性,当你的商业逻辑发生了改变的时候,不再需要修改并编译客户端应
  众多的用户手中,你只需要修改位于 服务器端的实现相应商业逻辑的存储过程即可。合理
  以最大限度的利用MS SQL Server的各种资源。下面我们来共同看看各种编
  存储过程和使用存储过程的技巧经验!
 下面我们讨论的前提都是您有过一定的MS SQL Server存储过程的编写
  特别注明,则同时适用于MS SQL Server7.0和MS SQL Serv
 1、使用OUTPUT类型参数的存储过程的技巧
  一般的存储过程都是直接返回一段记录集给调用者,但是有的时候我们只需要一些存储过
  可以指定存储过程的OUTPUT参数,比如:
 Create procedure GetName 
 @uid nvarchar(1),
 @usernam nvarchar(10)='' output
 AS
 set @username='hongchao'
 GO
 在上面的存储过程当中我们传递进的参数是@uid,而参数@username则
  这样,存储过程会返回给我们参数@username的值是‘hongchao’。上
  是,当在SQL2000中的时候,如果你的存储过程只有一个参数,并且这个参数是O
  用这个存储过程的时候给这个参数一个初始的值,否则会出现调用错误的情况!
 2、在存储过程中的书写注意事项
 这一点在MS SQL Server7.0和MS SQL Server200
  知道是不是微软的遗漏,那就是有些系统的关键字在不同的版本之间有所不同,比如关键
  select * from users where level=1
  在MS SQL Server7当中的存储过程当中运行没有丝毫的问题,但是到了M
  00当中则会出现运行的错误,原因就是在于在MS SQL Server2000中
  (奇怪的是SQL7当中也同样是关键字,却没问题),所以在SQL2000当中,上
  select * from users where [level]=1
  从上面的例子中我们可以看到,在你编写存储过程的时候,最好在有可能和系统关键字的
  围起来,以避免在移植过程中出现的运行错误问题。
 3、在存储过程中使用系统存储过程SP_Executesql的注意事项
 我们在编写自己的存储过程的时候,往往在很多的情况下,会使用到系统的存储过程
  要的注意的是,如果你在这个存储过程的参数(一般是一段SQL语句)当中进行了临时
  用者来说,这个临时Table是不可见的,也就是说你无法通过临时Table来在调
  决的方法是使用全局临时Table,也就是“##”开头的Table。
 4、在存储过程中使用临时Table和游标的注意事项
 如果我们的商业逻辑比较复杂,在存储过程当中,就需要一些媒介作为中转台,这时
  务必记得在使用完之后,即使删除使用到的临时Table。
 而在存储过程当中想要依次遍历一个记录集的唯一方法就是使用系统游标,同样要注
  闭和销毁游标对象释放他用到的资源。并且不在万不得已的情况下,不要随意使用游标,
  尤其是对于大并发量的情况下,很容易使得系统资源耗尽而崩溃。
 使用临时Table和游标各有利弊,在使用的过程中要适当的利用即可!
 5、在存储过程中调用外部的ActiveX DLL程序
 有些特殊的情况下,我们可能会需要调用外部的ActiveX DLL程序,这个
  程sp_OACreate以及其他的相关系统存储过程,都是以sp_OA开头的存储
  过程当中调用ActiveX DLL的各种方法和属性。比如下面的例子:
 DECLARE @object int
 DECLARE @hr int
 DECLARE @property varchar(255)
 DECLARE @return varchar(255)
 DECLARE @src varchar(255), @desc varc
 -- 建立一个对象(SQLDMO.SQLServer).
 EXEC @hr = sp_OACreate 'SQLDMO.SQLSer
  OUT
 IF @hr <> 0
 BEGIN
 EXEC sp_OAGetErrorInfo @object, @s
  OUT 
 SELECT hr=convert(varbinary(4),@hr
  c, Description=@desc
  RETURN
 END
 -- 设置对象的属性.
 EXEC @hr = sp_OASetProperty @object, 
  izmo'
 IF @hr <> 0
 BEGIN
 EXEC sp_OAGetErrorInfo @object, @s
  OUT 
 SELECT hr=convert(varbinary(4),@hr
  c, Description=@desc
  RETURN
 END
 -- 通过OUTPUT参数获取对象的属性值.
 EXEC @hr = sp_OAGetProperty @object, 
  roperty OUT
 IF @hr <> 0
 BEGIN
 EXEC sp_OAGetErrorInfo @object, @s
  OUT 
 SELECT hr=convert(varbinary(4),@hr
  c, Description=@desc
  RETURN
 END
 PRINT @property
 -- 调用对象的方法
 EXEC @hr = sp_OAMethod @object, 'Conn
  y_server', 'my_login', 'my_password'
 IF @hr <> 0
 BEGIN
 EXEC sp_OAGetErrorInfo @object, @s
  OUT 
 SELECT hr=convert(varbinary(4),@hr
  c, Description=@desc
  RETURN
 END
 -- 销毁已经创建的ActiveX对象
 EXEC @hr = sp_OADestroy @object
 IF @hr <> 0
 BEGIN
 EXEC sp_OAGetErrorInfo @object, @s
  OUT 
 SELECT hr=convert(varbinary(4),@hr
  c, Description=@desc
  RETURN
 END
 6、在存储过程中使用数据库事务处理
 在很多的情况下,我们在存储过程中都会遇到需要同时操作多个表的情况,这时候就
  外而造成的数据的不一致性。这时候就需要将操作多个表的操作放入到事务中进行处理。
 但是需要注意的是,不能在事务中使用return语句强行退出,这样会引发事务的非正
  性。
 并且,一旦将多个处理放入事务当中,系统的处理速度会有所降低,所以应当将频繁
  入到多个存储过程当中,这样会大大提高系统的响应速度,但是前提是不违背数据的一致
 看完了上面的这些编写SQL Server存储过程当中的技巧,相信对您或多或少会有些帮
  总结,可以使得您在应用SQL Server存储过程的时候,有意识的可以避免一些弯路。

逆向分析TikTok的Cronet网络库:定位libsscronet.so并Hook关键SSL函数 本文深入探讨了逆向分析TikTok的Cronet网络库的技术细节,重点介绍了如何定位libsscronet.so并Hook关键SSL函数。通过Java到Native的调用链路追踪、So库定位策略和SSL验证函数的动态Hook技巧,帮助开发者突破定制化网络库的协议加密防护,实现流量解密和协议分析。 阅读详情

相关推荐

IDEA+JRebel实现SpringBoot+MyBatis Plus项目热部署全攻略(含XML热更新实战)

本文详细介绍了如何在IDEA中使用JRebel为SpringBoot与MyBatis Plus项目配置高效的热部署方案。通过安装激活JRebel插件并配置关键扩展,重点解决了MyBatis XML映射文件修改后无法即时生效的痛点,实现了Java代码与XML文件的秒级热更新,从而彻底摆脱频繁重启应用的开发困境,大幅提升编码与调试效率。

weixin_28831341的博客 444

Sqlserver存储过程快速上手分享

根据百度百科介绍:美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。根据Microsoft介绍: SQL Server 中的存储过程是由一个或多个 Transact-SQL 语句或对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用构成的一个组。

qq_34168515的博客 2973

北京大学数字普惠金融指数(PKU-DFIIC)2011-2023+2024-11-6+211812+1.xlsx

京大学数字普惠金融指数是由北京大学数字金融研究中心与蚂蚁科技集团联合编制的综合性指数,旨在全面衡量中国数字普惠金融的发展水平和趋势。该指数自2011年起开始编制,至今已覆盖了中国内地31个省、直辖市、自治区,以及337个地级以上城市和近2800个县域。北京大学数字普惠金融指数是一个多维度、综合评估数字普惠金融发展程度的指标。它对于政策制定者、金融机构以及学术研究者都具有重要的参考价值。数据名称:省、市、县北京大学数字普惠金融指数数据年份:2011-2023年## 02、相关数据year prov_name prov_name_eng prov_code index_aggregate coverage_breadth usage_depth payment insurance monetary_fund investment credit credit_investigation digitization_levelyear pref_name_year18 pref_name_year18_eng pref_code_year18 pref_name_year

SQL Sever数据库存储过程

一、背景介绍 1.遇到存储过程 回顾之前知识,使用在当下(毕业设计) 2.了解周边知识 二、思路&方案 1.了解存储过程定义、语法、种类 2.存储过程有什么优缺点 3。存储过程与触发器和函数的联系 三、过程 1.什么是存储过程存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个“execute 存储过程名 参数”命令来调用存储过程。 2.语法 –创建存储过程 cr

向诸位大佬虚心学习 1万+

SQl存储过程-基于SQLSERVER讲解

存储过程的使用快速上手

m0_55337678的博客 6166

SQL Server基础之存储过程

  简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理。本篇主要介绍变量的使用,存储过程存储函数的创建,调用,查看,修改以及删除操作。 SQL Server中的存储过程是使用T_SQL编写的代码段。它的目的在于能够方便的从系统表中查询信息,或者完成与更新数据库表相关的管理任务和其他的系统管理任务.T_SQL语句是SQL Server数据库与应用程序之间的编程接口。在很多情况下,一些代码会被开发者重复编写多次,如果每次都编写相同功能的代码,不但繁琐,而且容易出错,

7363

sql server 创建存储过程

首先先把我困惑的地方放到前面,后面在详细讲一下过程。在 “对象资源管理器”中,连接到 数据库引擎 的实例,然后展开该实例。依次展开 “数据库”---》 “可编程性”。右键单击“存储过程”,再单击“新建存储过程”将会创建存储过程模板:让我困惑的 <Procedure_Name, sysname, ProcedureName>   有什么用?搜遍全网 也没答案。。。。上图其实是一个存储过程...

fengya1的专栏 3万+

SQL server速成之路】存储过程

🎉个人主页:这个昵称我想了20分钟 ✨往期专栏:【速成之路】jQuery 🎖️专栏:【速成之路】SQL server 🔓往期回顾: 【SQL server速成之路】数据库基础 【SQL server速成之路】数据库和表(一) 【SQL server速成之路】数据库和表(二) 【SQL server速成之路】数据库的查询 【SQL server速成之路】数据库的视图和游标 【SQL server速成之路】T-SQL语言(一) 【SQL server速成之路】T-SQL语言(二) 【SQL server.

m0_61684063的博客 1452

SQL Server存储过程编程经验技巧

MS SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 MS SQL Server2000的推出,微软的这种数据库服务系统真正的实现了在WindowsNT/200 0系列操作系统一统天下的局面,在微软的操作系统上面,没有任何一种数据库系统能与之相抗衡,包括数据库领域的领 头羊甲骨文公司的看家数据库系统 Oracle在内。不可否认,MS SQL Ser

1269

SQL Server存储过程的创建和使用

本文主要进行了存储过程的设计、创建、使用、修改、删除等操作,详细展示了这一流程。

m0_53450494的博客 1万+

MYSQL存储 、创建存储Create、查看存储、更新/修改存储、删除存储 以及实例讲解

1.存储 存储过程(Stored Procedure)是一种在数据库存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。 创建存储 1)向导创建 选择对应数据库下函数右键新建函数->选择过程->填写输入/输出参数->填写函数体信息->保存->填写函数名 使用SQL创建 语法:

DayDayUp 867

SQL Server——存储过程

存储,大家立马想起的是我们周围遇到的存错的各种物品的仓库等,即存储过程就是如何将物品存储到仓库中。这是我们生活中的存储过程,然而在数据库中,存储过程属于一种对象,是一种高效的安全的访问数据库的方法。好,下边我们就数据库中的存储过程总结它的相关知识点。我们分为概述,实现和管理三个方面来总结。 一,存储过程的概述: 1,概念:存储过程(StoredProcedure)是在数据库服务器...

管子(zero)的杂乱空间 445

Sql Server 存储过程实例讲解

本文章向大家介绍初入Sql Server存储过程的简单使用,主要内容包括一、简介、二、使用、三、在存储过程中实现分页、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

wuxiaopengnihao1的博客 5563

sql server存储过程基本写法

sql server存储过程的优点 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。 3.存储过程可以重复使用

xy631739211的博客 1万+

SQLserver存储过程简单写法与设置定时执行存储过程方法

SQLserver存储过程简单写法与设置定时执行存储过程方法

小橘是橘子的博客 1万+

SQLServer系列教程』——存储过程的创建与使用

📣读完这篇文章里你能收获到:1.了解SQLServer存储过程的优点、分类、定义及使用,2.提供实际操作的案例SQL脚本

老陈聊架构 1万+

SQL Server 存储过程:从入门到精通

存储过程是一组预编译的 SQL 语句集合,存储数据库中,可以通过调用执行。简单来说,它就像数据库中的“小程序”,可以重复使用。优点:提高效率:SQL 语句预编译,执行快。封装逻辑:复杂逻辑只需一次编写。安全性:可以控制访问权限,避免直接操作表。易维护:修改存储过程即可更新业务逻辑。从基础到高级,存储过程SQL Server 中提高效率、封装逻辑、保证安全性的重要工具。掌握存储过程不仅可以让你写出高效、可维护的 SQL,还能应对复杂的业务需求。入门:了解基本语法和调用方法进阶。

net core ,前端 ,python 全栈开发 707

SQL Server 存储过程入门

存储过程的创建和使用

liukuande的博客 1302

图解SQL Server 存储过程教程

以下给出存储过程代码和鄙人运行成功的截图。把以下存储过程代码中的tablename替换为自己的表名。 一 不带参数存储过程 if (exists (select * from sys.objects where name = 'proc_get_tablename'))     drop proc proc_get_tablename go create proc proc_get_ta

bcbobo21cn的专栏 2607

SQL server存储过程[详解]

什么是存储过程 存储过程类似于C#语言中的方法,他是SQL语言和控制语句的预编译集合,简单地说就是方法,可以向里面传入参数(博主个人理解) 优点:①模块化设计程序②执行速度快,效率高③减少网络流量代码④具有良好的安全性 存储过程分为二种:系统存储过程和用户自定义存储过程 调用存储过程:Exec 存储过程名称 首先说系统存储过程 名称都为'sp_'开头,存放在Resources数据库中 sp_databases:列出服务器上的使用数据库信息,并且显...

m0_56245036的博客 1831
上一篇: 存储过程入门与提高
下一篇: Servlet调用JavaBean输出结果集示例(转)
fly29
博客等级 码龄23年 16粉丝 80原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值