sql server学习笔记——批处理语句、存储过程

2023-11-02

目录

批处理语句

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

【关于批处理的解说明】

  1. 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语言的按引用传递。

【示例】

调用带参数的存储过程:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql server学习笔记——批处理语句、存储过程 的相关文章

  • MySQL中设置自增主键id从1开始

    可能遇到过这种问题 当你只想新增一条数据时 发现使用Insert语句后 发现id并不是从1开始的 握草 怎么回事 其实很简单 通过执行一下SQL 对应你的表就可以解决 ALTER TABLE user AUTO INCREMENT 1 具体
  • 如何处理不稳定的自动化测试?

    abluecolor 在解决这个问题之前 请停止编写更多测试 因为这将花费你较高的测试维护成本 你需要尽快行动起来对不稳定的原因进行深入研究 找到不稳定的根因 并且尝试在流程 环境和代码方面做一些优化工作解决它 MasterKindew 如
  • 如何在CentOS安装SQL Server数据库并通过内网穿透工具实现公网访问

    文章目录 前言 1 安装sql server 2 局域网测试连接 3 安装cpolar内网穿透 4 将sqlserver映射到公网 5 公网远程连接 6 固定连接公网地址 7 使用固定公网地址连接 前言 简单几步实现在Linux cento
  • AntDB内存管理之内存上下文之内存上下文机制是怎么实现的

    4 内存上下文机制是怎么实现的 下文将针对内存上下文机制进行代码说明 本次以AntDB的代码为例 来解析内存上下文的实现方式 4 1 最基础的数据结构 MemoryContextData和MemoryContextMethods是内存上下文
  • 智能时代:自然语言生成SQL与知识图谱问答实战

    语义解析 前言 语义解析的应用场景 总结概论 语义解析和大模型的关系 延伸阅读 前言 语义解析技术可以提高人机交互的效率和准确性 在自然语言处理 数据分析 智能客服 智能家居等领域都有广泛的应用前景 特别是在大数据时代 语义解析能够帮助企业
  • 【Mysql】InnoDB 引擎中的页目录

    一 页目录和槽 现在知道记录在页中按照主键大小顺序串成了单链表 那么我使用主键查询的时候 最顺其自然的办法肯定是从第一条记录 也就是 Infrimum 记录开始 一直向后找 只要存在总会找到 这种在数据量少的时候还好说 一旦数据多了 遍历耗
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 【计算机毕业设计】线上招聘问答系统

    计算机网络发展到现在已经好几十年了 在理论上面已经有了很丰富的基础 并且在现实生活中也到处都在使用 可以说 经过几十年的发展 互联网技术已经把地域信息的隔阂给消除了 让整个世界都可以即时通话和联系 极大的方便了人们的生活 所以说 线上招聘问
  • 软件测试/测试开发/全日制/测试管理丨Redis内存数据库

    Redis是一种开源 内存中的数据结构存储系统 它提供了高性能 灵活性和丰富的数据结构 以下是Redis内存数据库的基本介绍 键值存储 Redis基于键值对的存储模型 其中每个键都与一个特定的值相关联 这种简单的数据模型使其易于使用和理解
  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 【计算机毕业设计】电商个性化推荐系统

    伴随着我国社会的发展 人民生活质量日益提高 于是对电商个性化推荐进行规范而严格是十分有必要的 所以许许多多的信息管理系统应运而生 此时单靠人力应对这些事务就显得有些力不从心了 所以本论文将设计一套电商个性化推荐系统 帮助商家进行商品信息 在
  • 【计算机毕业设计】电影播放平台

    电影播放平台采用B S架构 数据库是MySQL 网站的搭建与开发采用了先进的java进行编写 使用了springboot框架 该系统从两个对象 由管理员和用户来对系统进行设计构建 主要功能包括 个人信息修改 对用户 电影分类 电影信息等功能
  • 【计算机毕业设计】二手图书交易系统

    随着世界经济信息化 全球化的到来和互联网的飞速发展 推动了各行业的改革 若想达到安全 快捷的目的 就需要拥有信息化的组织和管理模式 建立一套合理 动态的 交互友好的 高效的二手图书交易系统 当前的信息管理存在工作效率低 工作繁杂等问题 基于
  • 【计算机毕业设计】趵突泉景区的智慧导游小程序_5ztvv

    当今社会已经步入了科学技术进步和经济社会快速发展的新时期 国际信息和学术交流也不断加强 计算机技术对经济社会发展和人民生活改善的影响也日益突出 人类的生存和思考方式也产生了变化 传统趵突泉景区的智慧导游采取了人工的管理方法 但这种管理方法存
  • 【计算机毕业设计】微信小程序反诈科普平台

    相比于以前的传统手工管理方式 智能化的管理方式可以大幅降低反诈科普平台的运营人员成本 实现了反诈科普平台的标准化 制度化 程序化的管理 有效地防止了反诈科普平台的随意管理 提高了信息的处理速度和精确度 能够及时 准确地查询和修正反诈科普 一
  • 【计算机毕业设计】白优校园社团网站的设计与实现

    近些年 随着中国经济发展 人民的生活质量逐渐提高 对网络的依赖性越来越高 通过网络处理的事务越来越多 随着白优校园社团网站的常态化 如果依然采用传统的管理方式 将会为工作人员带来庞大的工作量 这将是一个巨大考验 需要投入大量人力开展对社团
  • 30天精通Nodejs--第二十天:express-操作mysql

    目录 前言 安装依赖并配置MySQL连接 安装mysql2库 配置连接信息 在Express应用中使用MySQL 结合Express路由实现CRUD操作 整合到主应用 结语 前言 在Node js中使用Expre
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • Python 使用 NoSQL 数据库的优选方案

    NoSQL 数据库因其高性能 可扩展性和灵活性而风靡一时 然而 对于 Python 程序员而言 选择合适的 NoSQL 数据库可能会令人困惑 因为有多种选择可供选择 那么 哪种 NoSQL 数据库最适合 Python 呢 2 解决方案 根据

随机推荐

  • 从Java到Go的过渡:实现服务器自动化运维

    目录 Go语言基础 自动化运维 从Java到Go的过渡 在今天的博客中 我们将探讨如何使用Go语言进行服务器自动化运维 例如Ansible和Puppet 作为一名Java开发者 这是一个极好的机会来学习和理解Go语言 并开始你的Go语言开发
  • 华为OD机试 - 告警抑制(C & Python)

    题目描述 告警抑制 是指高优先级抑制低优先级告警的规则 高优先级告警产生后 低优先级告警不再产生 请根据原始告警列表和告警抑制关系 给出实际产生的告警列表 注意 1 不会出现循环抑制的情况 2 告警不会传递 比如 A gt B B gt C
  • 浅谈JDBC,JDBC实现的几大步骤

    前言 当我们学完数据库之后总觉得数据库和java之间是没有联系的 但是我们还是要去学数据库是为了什么呐 现在就来了 现在我就来给大家讲讲怎么将数据库和java进行联系 我们也可以用数据库代替以前的IO流来存东西了 JDBC 概述 JDBC
  • day04-数组

    1 数组 1 1什么是数组 理解 数组就是存储数据长度固定的容器 存储多个数据的数据类型要一致 1 2数组定义格式 记忆 1 2 1第一种 数据类型 数组名 示例 int arr double arr char arr 1 2 2第二种 数
  • 【正点原子FPGA连载】 第三十一章 交通灯实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1 实验平台 正点原子领航者ZYNQ开发板 2 平台购买地址 https item taobao com item htm id 606160108761 3 全套实验源码 手册 视频下载地址 http www openedv com th
  • 【MySQL调优】如何进行MySQL调优?一篇文章就够了!

    导航 Java笔记 踩坑汇总 Java基础 进阶 JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 MySQL高级篇 设计模式 常见面试题 源码 目录 一 监控报警 二 排查慢SQ
  • C#9.0新特性

    运行环境 NET 5 0 vs2019 16 8版本以上 目标类型推导 在这之前我们创建一个对象 Point p new Point x y 9 0中 进行了优化 Point p new x y Point ps new 1 2 new 5
  • java多线程-对象及变量的并发访问

    synchronized同步方法 该关键字可用来保障原子性 可见性和有序性 方法内的变量为线程安全 多个线程的情况下 各个线程的变量为其私有 互不影响 实例变量非线程安全问题与解决方案 在被调用方法前加synchronized关键字上锁 同
  • 高质量程序设计指南C++ C 代码规范

    这里只是搬运作者对 匈牙利 命名规则做合理简化之后的命名规则 比较适合于 Windows应用程序的开发 建议1 类型名和函数名均以大写字母开头的单词组合而成 例如 class Node 类名 class LeafNode 类名 void D
  • 修改镜像源和修改PATH

    ls a 显示所有文件夹 这里就有我们需要的bashrc 修改path 和condarc 修改镜像 vim bashrc or condarc 打开文件 直接摁i进入修改模式 进行修改 修改完以后esc wq 确认保存退出就好了
  • qt opengl 2d纹理数组

    2d纹理数组就是用一个纹理数组类型的变量保存数个纹理 这样就避免了使用多个单个的纹理对象 这再批处理一系列相同大小的纹理时 非常有用 我这里用到的场景是在点精灵中使用纹理数组使得每个精灵纹理上不同的图案 我用的图片有16张 当顶点为16个时
  • 单片机c51 单一外中断的应用

    1 在51单片机的P1接口上有8只LED 在外部中断0输入引脚P3 2 INT0 引脚接有一只按钮开关K1 程序要求将外部中断0设置成负跳沿触发 程序启动时 P1口上的8只LED亮 按一次开关按钮K1 使引脚接地 产生一个负跳沿触发的外部中
  • python os.walk读取路径下文件名

    import os dir path C for root dirs files in os walk dir path for file in files print os path join root file if file len
  • android自定义view之地图(一)

    最近参加了一个比赛 要用到自己做一个自定义的小地图 所以在网上查找了一些关于自定义view的有关资料 也了解了自定义控件的初步知识 效果图 第一阶段我画了一个自制的网格图 点哪个网格就会哪个网格就会显示 工作环境图 代码介绍 1 我们都知道
  • Qt之QProcess(一)运行cmd命令

    Qt提供了QProcess类 QProcess可用于完毕启动外部程序 并与之交互通信 一 启动外部程序的两种方式 1 一体式 void QProcess start const QString program const QStringLi
  • python3 题解(47 定义有理数类)

    有理数类 问题 浮点数的运算很多时候都是近似的 因为计算机无法表示一个无限的小数 有理数总可以表示为整数的比值 并且有理数的四则运算结果还是一个有理数 除0除外 如果是有四则运算 则可以考虑用有理数表示 这样可以没有舍入误差 分析 记录一个
  • Markdown基础

    Markdown学习 标题 N个 空格 二级标题 三级标题 字体 Hello World 两边都加2个 就变成粗体 Hello World 两边都加1个 就变成斜体 Hello World 两边都加3个 就变粗斜体 Hello World
  • css世界读书笔记->line-height(1)

    如果 line height 的值是1 5 font size大小是14px 那么半行距的大小是 14px 4 5 14px 2 3 5px border及line height等传统css属性没有小数的概念 因此3 5px需要取整处理 1
  • 基于卷积神经网络-门控循环单元结合注意力机制(CNN-GRU-Attention)时间序列预测,单列数据输入模型。matlab代码,2020版本及以上。评价指标包括:R2、MAE、MSE、RMSE

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 tic restoredefaultpath 导入数据 f xlsread windspeed xls She
  • sql server学习笔记——批处理语句、存储过程

    目录 批处理语句 1 批处理语句简介 示例一 示例二 存储过程 一 什么是存储过程 1 存储过程的简介 2 存储过程包含的内容 3 存储过程的优点 4 存储过程的分类 系统存储过程 用户定义存储过程 5 常用的系统储存过程 1 一般常用的存