SQL Server编程(03)自定义存储过程
存储过程是一组预编译的SQL语句,它可以包含数据操纵语句、变量、逻辑控制语句等。
存储过程允许带参数:
- 输入参数:可以在调用时向存储过程传递参数,此类参数可用来向存储过程中传入值(可以有默认值)
- 输出参数:从存储过程中返回(输出)值,后面跟随OUTPUT关键字
存储过程的优点:
- 执行速度快
- 允许模块化设计
- 提高系统安全性
- 减少网络流量
创建存储过程
我们可以使用create procedure命令创建存储过程。
create procedure calcAge (
@birthday datetime, --输入参数
@age int output --输出参数,参数后面加 output
)
as
begin --begin...end 语句块不是必须的(即使是多条语句)
declare @now datetime
set @now=getdate()
set @age=YEAR(@now)-YEAR(@birthday) --为输出参数赋值,不需要return
end
输入参数带默认值:
create procedure calcAge (
@birthday datetime = '2012-1-1', --输入参数,带默认值,调用的时候可以不指定
@age int output --输出参数,参数后面加 output
)
as
begin --begin...end 语句块不是必须的(即使是多条语句)
declare @now datetime
set @now=getdate()
set @age=YEAR(@now)-YEAR(@birthday) --为输出参数赋值,不需要return
end
调用存储过程
我们新定义的存储过程有输出参数,调用的时候也需要指定参数为output
declare @age int
execute calcAge '2012-1-1', @age output --标记参数@age为output
print @age
调用存储过程时,默认情况下指定的参数是按照定义的数序指定的,我们也可以显示的指定:
declare @myAge int
execute calcAge @age=@myAge output --显示指定参数@age
print @myAge
修改存储过程
使用alter procedure命令修改存储过程,例如下面的伪代码:
alter procedure calcAge (
@birthday datetime,
@age int output
)
as
begin
-- 这里是你的逻辑
end
删除存储过程
使用drop procedure命令删除存储过程:
drop procedure calcAge
SQL Server编程(03)自定义存储过程的更多相关文章
- sql server 常用的系统存储过程
系统存储过程 说明 sp_databases 列出服务上的所有数据库 sp_helpdb 报告有关指定数据库或所有数据库的信息 sp_renamedb 更改数据库的名称 sp_tables 返回当 ...
- SQL Server编程系列(2):SMO常用对象的有关操作
原文:SQL Server编程系列(2):SMO常用对象的有关操作 在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的 ...
- SQL Server编程系列(1):SMO介绍
原文:SQL Server编程系列(1):SMO介绍 续篇:SQL Server编程系列(2):SMO常用对象的有关操作 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己 ...
- (转) SQL Server编程系列(1):SMO介绍
最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见, ...
- [转]SQL Server编程:SMO介绍
转自:周公 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文 ...
- SQL Server技术问题之存储过程与sql语句的优缺点
优点: 1. 允许模块化程序设计.2.可维护性高,只需创建存储过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次.存储过程可独立于程序源代码而单独修改,而不需要更改.测试以及重新部署程序集 ...
- Oracle与SQL SERVER编程差异分析(入门)
网上有关Oracle与SQL SERVER性能差异的文章很多,结论往往是让你根据数据量与预算来选择数据库.但实际项目中,特别是使用 .Net 开发的系统,支持以上两种数据库或者更多已经成为Boss的普 ...
- Sql Server 带参数的存储过程执行方法
Sql Server 带参数的存储过程执行方法 Visual C# 动态操作 SQL Server 数据库实例教程(4):带参数的存储过程执行方法 上一篇文章介绍了带参数的SQL语句执行方法和不带参数 ...
- [转] sql server 跨数据库调用存储过程
A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( ) =null , ) =null ) AS BEGIN select N'A' AS a , N'B' ...
- SQL Server编程(02)自定义函数
在编程过程中,我们通常把特定的功能语句块封装称函数,方便代码的重用.我们可以在SQL Server中自定义函数,根据函数返回值的区别,我们自定义的函数分两种:标量值函数和表值函数. 自定义函数的优点: ...
随机推荐
- android之fragment的使用
android中的fragment与html中的div很类似,下图中通过左边的按键可以控制右边的显示内容.右边的内容就是一个fragment,通过点击按键来控制fragment的实现. 工程目录 需要 ...
- grub.conf文件参数详解
Grub是Linux的下系统启动器之一(另一个名为Lilo),grub.conf相当于 windows下的boot.ini,都是存放启动项设置和信息的,如果你熟悉boot.ini的设置的话相信也可以很 ...
- morris的用法
參數選項說明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
- 如何在word中的第3+n页处插入页面并重新从1开始
在插入页码时有时可能会遇到这种情况: word的第一页是文档名称 第二页是目录 第三页才开始是正文,而我们希望看到页码从第三页开始才是第1页. 在第三页的开头,插入分隔符“下一页”,如果office2 ...
- oracle数据匹配merge into
来源于:http://blog.csdn.net/vtopqx/article/details/50633865 前言: 很久之前,估计在2010年左右在使用Oralce,当时有个需求就是需要对两个表 ...
- 网络设计中需要考虑的时延latency差异
Jeff Dean提到不同数据访问方式latency差异 Numbers Everyone Should Know L1 cache reference 0.5 ns Branch mispredic ...
- SharedPreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它是Android数据持久化方法中最简单的一种. 其本质是基于XML文件存储key-value键值对数据,通常用 ...
- Linux_虚拟机_安装VMware Tools
以root用户执行,否则可能会出现权限不足,无法执行的情况 一.点击安装Vmware Tools 二.拖动安装文件到桌面并解压 三.双击并[在终端中运行] 四.根据提示回车或输入yes ...
- 【POJ 2774】Long Long Message 最长公共子串
还是模板啊,手残&&打成||查错查了1h+TAT #include<cstdio> #include<cstring> #include<algorith ...
- ArcGIS 帮助(10.2、10.2.1 和 10.2.2)收集
帮助首页 [Oracle基础] 快速浏览:Oracle 地理数据库 什么是 Oracle Spatial? 设置到 Oracle 的连接 存储在 Oracle 地理数据库中的系统表 结合企业级地理数据 ...