Sqlserver中存储过程,触发器,自定义函数(二)
Sqlserver中存储过程,触发器,自定义函数:
自定义函数:
1.函数类型;
2.函数的参数和返回值;
1.函数类型:
标量值函数,返回的是一个标量值
表值函数:
内联表值函数;
多语句表值函数。
标量值函数:
go
create function SumOrders(@职工号 varchar(20))--指定参数名,和返回类型 stuNo
returns int --指定返回类型
begin
declare @订单总数 int --学生人数sumstudent
select @订单总数=count(订单.订单号) from
订单 join 职工 on 订单.职工号=职工.职工号
where 职工.职工号=@职工号
return @订单总数
end select dbo.SumOrders('E4') go
alter function SumStudent(@stuNo int)--指定参数名,和返回类型 stuNo
returns int --指定返回类型
begin
declare @sumS int --学生人数sumstudent
select @sumS=count(*) from stuInfo
where stuNo>=@stuNo
return @sumS
end
go
select dbo.SumStudent(4) as 总数
--eg2:创建内联表值函数
create function SelectOrdersByTime(@起始时间 datetime,@终止时间 datetime)
returns table
return select * from 订单 where
订单日期 between @起始时间 and @终止时间 go
select * from SelectOrdersByTime('2003-01-01','2003-07-01')
--=======================
go
create function SelectinfoByTime(@起始时间 int,@终止时间 int)
returns table
return select * from stuInfo where
stuNo between @起始时间 and @终止时间 go
select * from SelectinfoByTime(1,9)
--eg3:创建多语句表值函数
create function MingDan()--无参函数
returns @名单 table
(
编号 int identity(1,1) not null,
姓名 nvarchar(10) not null
)
begin
insert @名单
select 供应商编号,姓名 from 供应商
insert @名单
select 职工编号,姓名 from 职工
return
end
go
select * from MingDan() --eg4:自定义函数生成默认值:
go
create function Default_Num()
returns varchar(7)
begin
declare @编号 varchar(7)
declare @id int
select top 1 @编号=编号 from testorder by 编号 desc
if @@rowcount=0
set @编号='TCP_001'
else
begin
set @id=cast(substring(@编号,5,3)asint) + 1
set @编号='TCP_' + replicate('',3-len(@id)) +cast(@idasvarchar(3))
end
return @编号
end
--eg4:自定义函数生成默认值:
create function Default_Num()
returns varchar(7)
begin
declare @编号 varchar(7)
declare @id int
select top 1 @编号=编号 from testorder by 编号 desc
if @@rowcount=0
set @编号='TCP_001'
else
begin
set @id=cast(substring(@编号,5,3)asint) + 1
set @编号='TCP_' + replicate('',3-len(@id)) +cast(@idasvarchar(3))
end
return @编号
end
Sqlserver中存储过程,触发器,自定义函数(二)的更多相关文章
- SQL中存储过程和自定义函数的区别
存储过程: 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...
- SQL中存储过程和自定义函数的区别(转载)
存储过程: 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...
- C# 得到sqlserver 数据库存储过程,触发器,视图,函数 的定义
经常从 生产环境 到测试环境, 需要重新弄一整套的数据库环境, 除了表结构以及表结构数据,可以用动软代码生成器 生成之外, 像 存储过程,触发器,等,好像没有批量操作的,意义哥哥农比较麻烦, 所以最近 ...
- Sqlserver中存储过程,触发器,自定义函数(一)
Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...
- Sqlserver中存储过程,触发器,自定义函数
Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...
- SqlServer中存储过程 returnC#代码处理以及对应的MySQL如何改写
一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names ), address ), paw ) ) 2.创建存 ...
- MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别
1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储 ...
- MySQL存储过程/存储过程与自定义函数的区别
语法: 创建存储过程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parame ...
- (转)MySQL存储过程/存储过程与自定义函数的区别
转自:http://www.cnblogs.com/caoruiy/p/4486249.html 语法: 创建存储过程: CREATE [definer = {user|current_user}] ...
随机推荐
- 搭建EF6.0+MVC4搭建框架——之路由配置
为了适应项目需求,需要将前后台的控制器和视图等文件分开,便于修改和维护: 方案一:在原有的Controller下新增Admins文件夹用于放置后台控制器文件: 控制器文件目录如下图: 视图文件目录:
- C#中的List<string>泛型类示例
在C#代码中使用一系列字符串(strings)并需要为其创建一个列表时,List<string>泛型类是一个用于存储一系列字 符串(strings)的极其优秀的解决办法.下面一起有一些Li ...
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室 实战系列。开源啦!!!
自此系列博客开写以来,好多同学关心开源问题,之前由于网络问题,发布到Github上老是失败,今天终于在精简了好多无用的文件之后发布上去了. 注意:layim源代码并不开源,由于版权问题,请大家去官网了 ...
- HttpClient简介 post get -转自ibm
HttpClient简介 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 jav ...
- html标记语言的标准写法-参考自http://www.zhihu.com/question/20797118/answer/16212312
网页头部的声明应该是用 lang="zh" 还是 lang="zh-cn"? 添加评论 查看全部 12 个回答 skydiver ,程序员 5 人赞 ...
- Load an X509 PEM file into Windows CryptoApi
http://stackoverflow.com/questions/1231178/load-an-x509-pem-file-into-windows-cryptoapi I discovered ...
- Saltstack系列5:Saltstack之pillar组件
pillar组件 pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板.state.API等. 在pillar中定义的数据与 ...
- android学习笔记三
GUI==>Graphics User Interface,图形用户界面. android UI 建立在View.ViewGroup基础上,采用组合器设计模式设计View和ViewGoup. V ...
- 【MySQL】索引长度的一些限制
有同学问到InnoDB的索引长度问题,简单说几个tips. MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制. myisam表,单列索引,最大长度不能超过 1000 ...
- 关于Linux中exec的一点心得
最近在学习linux操作系统中的相关知识,在使用execlp系统调用时,发现了些有趣的东西. 首先,关于execlp函数的用法: int execlp(const char *file, const ...