SQL Server 函数的定义及使用
一、定义存储过程
当存储过程需要有返回值时,可以使用output关键字或return关键字。output和return不能同时使用
--定义
create procedure program
--@parameter int 定义参数
--@parameter int output 利用output关键字返回接口
as
begin
print '';
--return ''; 利用return关键字返回结构
end
--调用 execute 存储过程名 参数
execute program
--赋值的方式调用
declare @cc varchar(10)
execute @cc = program
二、定义函数
1. 标量值函数:
返回一个确定类型的标量值,例如:int,char,bit等
--创建标量值函数
create function func_1(@func_parameter_1 int,@func_parameter_2 int)
returns int
as
begin
return 1
end
2. 表值函数
内联表值函数和多语句表值函数,都叫做表值函数,只是在定义返回值时,多语句确定了返回表的字段
--内联表值函数
create function func_table(@parameter_id varchar(36))
returns table
as
return select ID,Name from Members where ID = @parameter_id
go
--多语句表值函数
create function func_table1(@parameter_id varchar(36))
returns @tab_1 table(
ID varchar(36),
Name varchar(10)
)
as
begin
insert into @tab_1 select ID,Name from Members
return
end
3.调用函数
在存储过程中调用函数时,需要带上“dbo.” 看看是那个数据库的。表值函数也可以用“insert into ……select ‘函数’ ”赋值给表变量或临时表等
-- 标量函数
declare @params varchar(100)
select @params = dbo.func_1(1,2);
-- 表值函数
select * from func_3('parameter_varchar');
select @params = Name from func_table('parameter_varchar');
三、触发器
--基本语法
create trigger Trigger_Name
on TableName for type --type:insert,update,delete
as
--执行逻辑
1. insert 定义触发器并获取当前值
create trigger Member_Inserts
on Member for insert
as
declare @id varchar(36)
select @id = id from inserted;
insert into Member(ID,Sex) values(@id+'insert',0);
2. update 触发器
update 触发器获取修改前的值和修改后的值。update操作等于先删除记录,再插入新的记录
create trigger Member_Updates
on Member for update
as
declare @idnew varchar(36);
declare @idold varchar(36);
select @idnew = id from inserted;--inserted在修改时存放的新值的临时表
select @idold = id from deleted;--deleted在修改时存放的旧值的临时表
insert into Member(ID,Sex) values(@idnew+'new',0);
insert into Member(ID,Sex) values(@idold+'old',0);
3.delete 触发器
create trigger Member_Deletes
on Members for delete
as
declare @idold varchar(36);
select @idold = id from deleted;--deleted在修改时存放的旧值的临时表
insert into Members(ID,CreateTime,Author,Status) values(NEWID(),GETDATE(),@idold,0)
SQL Server 函数的定义及使用的更多相关文章
- SQL SERVER 函数大全[转]
SQL Server 函数大全 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下 ...
- Sql Server函数全解<五>之系统函数
原文:Sql Server函数全解<五>之系统函数 系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些 ...
- sql server 函数的自定义
创建用户定义函数.这是一个已保存 Transact-SQL 或公共语言运行时 (CLR) 例程,该例程可返回一个值.用户定义函数不能用于执行修改数据库状态的操作.与系统函数一样,用户定义函数可从查询中 ...
- 【转载】SQL SERVER 函数大全
SQL Server 函数大全 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下 ...
- Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表)
Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ==== ...
- Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表)
Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUN ...
- Sql Server函数全解<四>日期和时间函数
原文:Sql Server函数全解<四>日期和时间函数 日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...
- SQL Server函数---Union与Union All的区别
SQL Server函数---Union与Union All的区别 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称 ...
- SQL Server 函数之日期格式化函数
SQL Server 函数之日期格式化函数 高文龙关注0人评论612人阅读2017-09-23 13:47:07 SQL Server 函数之日期格式化函数 对于一些经常写SQL Server执行语句 ...
随机推荐
- 详解 Java 8 HashMap 实现原理
HashMap 是 Java 开发过程中常用的工具类之一,也是面试过程中常问的内容,此篇文件通过作者自己的理解和网上众多资料对其进行一个解析.作者本地的 JDK 版本为 64 位的 1.8.0_171 ...
- 照片美妆---基于Haar特征的Adaboost级联人脸检测分类器
原文:照片美妆---基于Haar特征的Adaboost级联人脸检测分类器 本文转载自张雨石http://blog.csdn.net/stdcoutzyx/article/details/3484223 ...
- mstsc也要使用/admin参数
mstsc.exe /admin http://stackoverflow.com/questions/6757232/service-not-responding-error-1053
- RocketMQ配置
安装&配置 1.Clone&Build git clone -b develop https://github.com/apache/incubator-rocketmq.git cd ...
- 学会了使用qmake -query
D:\Qt\Qt5.6.2_static_kk\bin>qmake -queryQT_SYSROOT:QT_INSTALL_PREFIX:C:/Qt/Qt5.6.2_static_kkQT_IN ...
- tftp的安装及配置
1.安装tftp服务客户端sudo apt-get install tftp 2.安装tftp服务器端sudo apt-get install tftpd 3.安装xinetd注意同类似的还有open ...
- Topshelf结合Quartz.NET实现服务端定时调度任务
这周接受到一个新的需求:一天内分时间段定时轮询一个第三方WebAPI,并保存第三方WebAPI结果. 需求分析:分时段.定时开启.定时结束.轮询.主要工作集中在前三个上,轮询其实就是个Http请求,比 ...
- PNG透明窗体全攻略(控件不透明)
http://blog.csdn.net/riklin/article/details/4417247 看好了,这是XP系统,未装.net.我的Photoshop学的不太好,把玻璃片弄的太透了些,如果 ...
- 教你如何在 Visual Studio 2013 上使用 Github
介绍 我承认越是能将事情变简单的工具我越会更多地使用它.尽管我已经知道了足够的命令来使用Github,但我宁愿它被集成到IDE中.在本教程中,我会告诉你使用Visual Studio 2013如何实现 ...
- SYN2306C型 GPS北斗授时导航接收机
SYN2306C型 GPS北斗授时导航接收机 北斗对时系统北斗标准同步时钟北斗卫星校时器使用说明视频链接: http://www.syn029.com/h-pd-222-0_310_36_-1.htm ...