目录
批处理语句
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 stuMarks
SET 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 数据类型=默认值 OUTPUT
AS
SQL语句
GO
--和C语言的函数一样,参数可选;
--参数分为输入参数、输出参数;
--输入参数允许有默认值
2、不带参数的存储过程
(1)创建不带参数的存储过程
CREATE PROCEDURE usp_ProcShowScore
AS
declare @total int
declare @avg int
select @total=sum(score),@avg=avg(score)
from view考试成绩
if @avg>70
print 'good' + convert(nvarchar(20),@avg)
else
print 'no good'
SELECT *
FROM View考试成绩
WHERE (Score < 60)
(2)调用存储过程
- EXECUTE(执行)语句用来调用存储过程
- 调用的语法:EXEC 过程名 [参数]
3、带参数额存储过程
(1)创建带参数的存储过程
存储过程的参数分两种:输入参数和输出参数
- 输入参数:用于向存储过程传入值,类似C语言的按值传递。
- 输出参数:用于在调用存储过程后,返回结果,类似C语言的按引用传递。
【示例】
调用带参数的存储过程: