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中存储过程,触发器,自定义函数(二)的更多相关文章

  1. SQL中存储过程和自定义函数的区别

    存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...

  2. SQL中存储过程和自定义函数的区别(转载)

    存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...

  3. C# 得到sqlserver 数据库存储过程,触发器,视图,函数 的定义

    经常从 生产环境 到测试环境, 需要重新弄一整套的数据库环境, 除了表结构以及表结构数据,可以用动软代码生成器 生成之外, 像 存储过程,触发器,等,好像没有批量操作的,意义哥哥农比较麻烦, 所以最近 ...

  4. Sqlserver中存储过程,触发器,自定义函数(一)

    Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...

  5. Sqlserver中存储过程,触发器,自定义函数

    Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...

  6. SqlServer中存储过程 returnC#代码处理以及对应的MySQL如何改写

    一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names ), address ), paw ) ) 2.创建存 ...

  7. MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别

    1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储 ...

  8. MySQL存储过程/存储过程与自定义函数的区别

    语法: 创建存储过程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parame ...

  9. (转)MySQL存储过程/存储过程与自定义函数的区别

    转自:http://www.cnblogs.com/caoruiy/p/4486249.html 语法: 创建存储过程: CREATE [definer = {user|current_user}]  ...

随机推荐

  1. 使用git pull文件时和本地文件冲突怎么办?

    同事在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten ...

  2. js 监听整个页面的回车事件

    JS监听整个页面的回车事件 <script type="text/javascript"> document.onkeydown=keyDownSearch;      ...

  3. Reporting Service 报表报 rsReportServerDatabaseError 错的解决方法

    一.打开CRM的报表出现“报表服务器数据库内出错.此错误可能是因连接失败.超时或数据库中磁盘空间不足而导致的. (rsReportServerDatabaseError) 获取联机帮助 对象名 'Re ...

  4. .NET去掉HTML标记

    using System.Text.RegularExpressions; /// <summary> /// 去除HTML标记 /// </summary> /// < ...

  5. jQuery网页右侧固定层显示隐藏在线qq客服代码

    CSS代码: @charset "utf-8"; ;;} html,body{font-size:12px;font-family:"微软雅黑";outline ...

  6. JSP MVC

    Java的MVC玩起来比.Net的有意思,因为每一步你都知道它是如何运作的,都由自己去实现.而在.Net的MVC中,你却不知道一个Controller是如何对应到View中的,因为MS给了你IDE上的 ...

  7. Android官方提供的支持不同屏幕大小的全部方法

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8830286 原文地址为:http://developer.android.com/ ...

  8. 剑指offer系列57---整数中1出现的次数

    [题目]求出1~n的整数中1出现的次数.(10进制) package com.exe11.offer; /** * [题目]求出1~n的整数中1出现的次数. * @author WGS * */ pu ...

  9. bzoj4705: 棋盘游戏

    Description 有一个N*M的棋盘,初始每个格子都是白色的. 行操作是指选定某一行,将这行所有格子的颜色取反(黑白互换). 列操作是指选定某一列,将这列所有格子的颜色取反. XX进行了R次行操 ...

  10. 关于mysql数据库在输入密码后,滴的一声直接退出界面的解决办法

    转自:http://www.2cto.com/database/201412/361751.html 网上搜索到的解决办法: 1.找到mysql安装目录下的bin目录路径.2.打开cmd,进入到bin ...