热门标签 | 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



推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
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社区 版权所有