sql server学习笔记——批处理语句、存储过程
目录
批处理语句
1、批处理语句简介
示例一:
示例二:
存储过程
一、什么是存储过程
1、存储过程的简介
2、存储过程包含的内容
3、存储过程的优点
4、存储过程的分类
系统存储过程:
用户定义存储过程
5、常用的系统储存过程
(1)一般常用的存储过程
(2)xp_cmdshell
二、创建存储过程
1、定义存储过程的语法
2、不带参数的存储过程
3、带参数额存储过程
友情链接视频:SQLServer教程
批处理语句
1、批处理语句简介
- 批处理是包含一个或多个SQL语句的组,从应用程序一次性地发送到SQL Server执行;
- SQL Server将批处理语句编译成一个壳执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。
示例一:
select * from stulnfo
select * from stuMarks
UPDATE stuMarksSET writtenExam=writtenExam+2
GO
- GO是批处理的标志,表示SQL Server将这些T-SQL语句编译为一个执行单元,提高执行效率;
- 一般是将一些逻辑相关的业务操作语句,防止在同一批中,这完全由业务需求和代码编译这决定。
示例二:
SQL Server规定:如果是建库、建表语句、以及我们后面学习的存储过程和视图等,则必须在语句末尾添加 GO 批处理标志。
--例如建表语句的末尾必须添加GO
CREATE TABLE stulnfo
(
......
)
GO
【关于批处理的解说明】
- GO提交完成后,是将这个批处理语句当做一个批处理单元处理的,GO是界定一个处理范围的,所以操作批处理单元中的变量只能够在该批处理单元中起作用,超出这个批处理单元就不起作用了的;
存储过程
一、什么是存储过程
1、存储过程的简介
- 存储过程(stored procedure)类似于C语言中的函数;
- 用来执行管理任务或应用复杂的业务规则(通过T_SQL语言编写);
- 存储过程可以带参数,也可以返回结果。
2、存储过程包含的内容
存储过程可以包含数据操纵语句、变量、逻辑控制语句等。
3、存储过程的优点
- 执行速度更快(预编译,数据库服务器内部执行);
- 允许模块化程序设计;
- 提高系统安全性;
- 减少网络流通量;
- 可维持性。
4、存储过程的分类
系统存储过程:
- 由系统定义,存放在master数据库中;
- 类似C语言中的系统函数;
- 系统存储过程的名称都以“sp_”(system stored procedure)开头或“xp_”(extend stored procedure)开头;
用户定义存储过程
- 由用户在自己的数据库中创建的存储过程;
- 类似C语言中的用户自定义函数;
5、常用的系统储存过程
(1)一般常用的存储过程
【示例】
(2)xp_cmdshell
- 可以执行DOS命令下的一些操作;
- 以文本行的凡是返回任何输出;
- 调用语法:EXEC xp_cmdshell DOS命令 [NO_OUTPUT] ====》其中,[NO_OUTPUT]为不输出
【示例说明】:创建数据库bankDB,要求保存在D:\back
USE master
GO
EXEC xp_cmdshell 'mkdir d:\bank',NO_OUTPUT
IF EXISTS(SELECT * FROM sysdatabases WHERE name='bankDB')DROP DATABASE bankDB
GO
CREATE DATABASE bankDB
(
...
)
GO
EXEC xp_cmdshell 'dir D:\bank\' --查看文件
执行过程如下:
由于系统管理员没有开启扩展系统存储过程导致的,这是windows为了安全考虑的。具体设置如下图所示:
二、创建存储过程
1、定义存储过程的语法
create proc [edure] 存储过程名@参数1 数据类型=默认值 OUTPUT,...... ,@参数n 数据类型=默认值 OUTPUTASSQL语句
GO
--和C语言的函数一样,参数可选;
--参数分为输入参数、输出参数;
--输入参数允许有默认值
2、不带参数的存储过程
(1)创建不带参数的存储过程
CREATE PROCEDURE usp_ProcShowScoreASdeclare @total int
declare @avg int
select @total=sum(score),@avg=avg(score)
from view考试成绩if @avg>70print 'good' + convert(nvarchar(20),@avg)
elseprint 'no good'SELECT *
FROM View考试成绩
WHERE (Score < 60)
(2)调用存储过程
- EXECUTE(执行)语句用来调用存储过程
- 调用的语法:EXEC 过程名 [参数]
3、带参数额存储过程
(1)创建带参数的存储过程
存储过程的参数分两种:输入参数和输出参数
- 输入参数:用于向存储过程传入值,类似C语言的按值传递。
- 输出参数:用于在调用存储过程后,返回结果,类似C语言的按引用传递。
【示例】
调用带参数的存储过程:
sql server学习笔记——批处理语句、存储过程相关推荐
- SQL Server学习笔记
<SQL Server从入门到精通>学习笔记 1 数据管理技术的三个阶段:人工管理.文件系统.数据库系统. 2 数据库的组成:数据库.数据库管理系统.数据库管理员.硬件平台.软件平台5部分 ...
- SQL Server 学习笔记——T-SQL
SQL学习笔记 一.SQL概述 SQL按其功能可以分为三大部分: 数据定义功能.数据操纵功能和数据控制功能 DDL.DML.DCL SQL功能 命令动词 数据定义 CREATE.ALTER.DROP ...
- 【SQL Server学习笔记】变更数据捕获(Change Data Capture)
SQL Server的变更数据捕获(Change Data Capture,CDC),就是异步捕获表数据的修改,只有很少的性能开销,可以持续的更新其他数据源,比如,将联机事务处理数据库中的持续数据变化 ...
- 【SQL Server学习笔记】SQL SERVER 视图
视图包括:普通视图,索引视图,分布式分区视图. 关于视图的最佳实践: A.对视图进行性能优化的过程和普通的select查询语句的优化过程是一样的. B.不要在一个视图的定义中调用另一个视图. C.如果 ...
- 数据库原理与应用(SQL Server)笔记 第九章 存储过程和触发器
目录 前言 一.存储过程 (一)存储过程的定义 (二)存储过程的特点 (三)存储过程的分类 1.用户存储过程 2.系统存储过程 3.扩展存储过程 (四)存储过程的创建 (五)存储过程的执行 (六)带参 ...
- 适合小白的SQL Server学习笔记
升序ASC 降序DESC 统计某个字段count(字段),一般都需要根据该字段分组group by(字段) having的作用相当于where,但是where关键字不能与合计函数一起使用(例:sum ...
- SQL Server 学习笔记
SQL Server 创建数据库 切换数据库 在表中插入数据 在表中查询数据 无条件查询 取消结果集中的重复行 在表中修改数据 在表中删除数据 表结构的修改 添加列 修改列 环境 SQL Server ...
- SQL SERVER学习笔记(入门篇)
登入前注意事项: 启动SQL SERVER服务,方法如下: 1.后台启动,(计算机管理-服务-SQL SERVER (MSSQLSERVER)) 2.CMD窗口使用命令行启动(启动:net start ...
- SQL SERVER学习笔记(二)数据库管理
第二部分:数据库管理 单词记忆:transact:处理 create:创建 execute:执行.完成 一. SQL Server的特性 1. 安装简便:为了便于安装.使用和管理,SQL Se ...
最新文章
- python3--装饰器
- java 检查目录是否存在_如何检查Java目录是否存在?
- 图解算法学习笔记(一): 算法简介
- 【操作系统】请求调页
- MFC访问阿里云Oss平台
- eclipse3.1.1汉化版安装
- 虚拟机网络驱动(共享文件夹)不见了的解决方案-适用于win7~win10 and Windows Server 2008~Windows Server 2012R2
- 学习日志-virtual,override,new,overload
- knot DNS 01 Tips
- 星岚技术 Win10 x64 装机版 V2021.5【带驱动包】
- 中了勒索病毒之后怎么办-亲身经历(2021.8)
- TTL转RS232电路设计
- 打印机只能扫描图片,不能扫描成PDF解决办法
- 16进制格式的字符串怎样转换为整数
- 结构设计模式:复合模式
- 湮没在赞誉之中,科学史上鲜为人知的五大“败笔”
- SQLServer 表分区 根据时间自动扩展分区
- ROHM 的 SiC 技术助力赛米控的 EMPack
- 7旬夫妻为3岁女儿庆生
- excel日期时间处理方法
热门文章
- 宝塔面板Java项目一键部署项目404问题
- 软件集成测试策略有哪些,面向对象的集成测试与传统的软件集成测试有什么不同?分别有哪些策略?...
- 最新谷歌账号申请教程
- php输出10!的值,大侠求助!Thinkphp 如何输出指定值数据
- 莫言用 GPT 写颁奖辞,那如果他自己写会是什么效果呢?
- 关于校招面试要怎么准备,这里有一些过来人的建议
- java contenttype_如何在Flurl中更改Content-Type?
- eclipse敲代码常用的快捷键
- 通过js来获取前天、昨天、今天、明天、后天、大后天的日期
- python怎样操作excel表_python操作excel表