热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLServer存储过程相关语法

一、定义变量及赋值1.1普通变量--定义变量declareparameter_setintdeclareparameter_selectvarchar(20)declarep

一、定义变量及赋值

1.1 普通变量

--定义变量
declare @parameter_set int
declare @parameter_select varchar(20)
declare @parameter_update varchar(20)
--set 关键字赋值
set @parameter_set = 1;
--select 赋值
select @parameter_select = '';
select @parameter_select = Name from Member where Account = ''
--update 赋值
update Member set @parameter_update = Name where ID='';

 1.2 表变量,赋值和临时表

--定义表变量
declare @tab table(Id varchar(36) not null,Name varchar(10) null
)
--赋值
insert into @tab values('123','312');
insert into @tab select ID,Name from Member;
--创建临时表
--
# 表示局部的生命周期临时表
create table #table_1(Id varchar(36) not null,Name varchar(10) null
)
--## 表示全局的生命周期临时表
create table ##table_2(Id varchar(36) not null,Name varchar(10) null
)
--赋值
insert into #table_1(Id,Name) values('123','312');
insert into ##table_2 select ID,Name from Member;

二、条件、循环、分支语句、异常处理

2.1 条件 if else

if(10>2)beginprint('true');end
elsebeginprint('false');end

2.2 循环 while

declare @num int
declare @sum int
set @num=1
set @sum=0
while(&#64;num<&#61;10)beginset &#64;sum&#43;&#61;&#64;num set &#64;num&#43;&#61;1 end
print &#64;sum

2.3 分支 case when then else

declare &#64;case_value int
declare &#64;result varchar(10)
set &#64;result &#61; casewhen &#64;case_value &#61; 1 then &#39;1&#39;when &#64;case_value &#61; 2 then &#39;2&#39;when &#64;case_value &#61; 3 then &#39;3&#39;when &#64;case_value &#61; 4 then &#39;4&#39;else&#39;0&#39;end
print &#64;result

2.4 异常处理try catch

begin trydeclare &#64;try_int int;set &#64;try_int &#61; 1 / 0;print(&#39;1&#39;);
end try
begin catch
--这几个函数只能用在Catch里面!print(error_number());print(error_severity());print(error_state());print(error_procedure());print(error_line());print(error_message());
end catch

三、定义存储过程

3.1 创建存储过程及调用

--无参数无返回结果
create procedure p1
as
begin print(&#39;执行过程&#39;);
end
go
--带参数
create procedure p2&#64;parameter_1 int
as
begin print(&#64;parameter_1);
end

3.2 调用

p2 为存储过程名称,后面跟参数

--调用
execute p2 1

3.3 使用output或retuen 返回结果

3.3.1 output&#xff1a; 可以有多个&#xff0c;调用时结果结果的参数也要标识output

-- output
create procedure p3&#64;parameter_1 int,&#64;parameter_out int output,&#64;parameter_out_1 int output
as
begin set &#64;parameter_out &#61; &#64;parameter_1 &#43; 1set &#64;parameter_out_1 &#61; 10
end
--调用
declare &#64;r1 int
declare &#64;r2 int
execute p3 1,&#64;r1 output,&#64;r2 output;
print &#64;r1
print &#64;r2
go

3.3.1 return

-- return
create procedure p4&#64;parameter_1 int
as
begin return &#64;parameter_1 &#43; 1;
end
--调用
declare &#64;result int
execute &#64;result &#61; p4 10
print &#64;result
go


转:https://www.cnblogs.com/haosit/p/10398677.html



推荐阅读
  • 本周,我深入研究了 ECharts 插件的使用方法,整体感觉插件操作较为简便,但后台算法较为复杂。此外,我还学习了 MySQL 函数的新应用,进一步提升了数据库操作的灵活性。同时,分享了自己在 Python 书籍外借过程中的体验,总结了一些实用的借阅技巧和心得。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • MySQL索引详解及其优化策略
    本文详细解析了MySQL索引的概念、数据结构及管理方法,并探讨了如何正确使用索引以提升查询性能。文章还深入讲解了联合索引与覆盖索引的应用场景,以及它们在优化数据库性能中的重要作用。此外,通过实例分析,进一步阐述了索引在高读写比系统中的必要性和优势。 ... [详细]
  • 本文详细介绍了在 SQL Server 2005 中优化和实现分页存储过程的方法。通过创建一个名为 `[dbo].[GetUsers]` 的存储过程,该过程接受两个参数:`@RowIndex`(当前指定的页数)和 `@RecordCount`(每页显示的记录数)。文章不仅提供了具体的代码示例,还深入探讨了性能优化技巧,包括索引使用和查询优化策略,以提高分页查询的效率和响应速度。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 本文介绍了MySQL中一些基本但重要的数学函数,包括角度与弧度之间的转换函数RADIANS(X)和DEGREES(X),以及正弦函数。RADIANS(X)用于将角度值转换为弧度值,而DEGREES(X)则将弧度值转换为角度值。这些函数在处理涉及角度和弧度的计算时非常有用,能够简化复杂的数学运算。此外,正弦函数在三角学和工程计算中也具有广泛的应用,能够帮助用户更高效地进行数据处理和分析。 ... [详细]
  • 在数据表中,我需要触发一个操作来刷新特定列的数据。例如,对于以下表格:| ID | Name | IsDeleted ||----|-------|-----------|| 1 | test | True || 2 | test2 | False |我希望在点击“更新”按钮时,能够仅刷新选定行的“IsDeleted”列。这将有助于确保数据的实时性和准确性。 ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
  • PHP 数组逆序排列方法及常用排序函数详解 ... [详细]
  • PyCharm 作为 JetBrains 出品的知名集成开发环境(IDE),提供了丰富的功能和强大的工具支持,包括项目视图、代码结构视图、代码导航、语法高亮、自动补全和错误检测等。本文详细介绍了 PyCharm 的高级使用技巧和程序调试方法,旨在帮助开发者提高编码效率和调试能力。此外,还探讨了如何利用 PyCharm 的插件系统扩展其功能,以满足不同开发场景的需求。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 在Kubernetes上部署多个Mitmproxy代理服务器以实现高效流量管理 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
author-avatar
Paul_Zhao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有