SQL Server 存储过程入门

news2024/11/30 18:50:07

SQL Server 存储过程入门

    • 1.存储过程的定义:
    • 2.存储过程的作用与好处:
    • 3.存储过程的基本语法:
      • (1)创建
      • (2)使用
    • 4.存储过程的3个示例:
      • (1)创建一个Contact表的名为“Contactproc”,无参,用于查询Contact表中的所有内容:
      • (2)创建一个Contact表的名为“ContactprocN”,含一个参数,用于模糊查询姓名的存储过程:
      • (3)创建一个Contact表的名为ContactprocNG,含两个参数,查询条件是姓+群组

1.存储过程的定义:

存储过程是一组预编译的SQL语句和控制流程的代码块,它们被存储在数据库中,并可以在需要时被调用执行。存储过程通常用于执行常见的数据库操作,如插入、更新和删除数据,以及执行复杂的业务逻辑。存储过程一次编译,永久有效,在数据量十分庞大的情况下使用存储过程可以倍速提高效率。

2.存储过程的作用与好处:

  1. 预编译:存储过程在首次执行前会被编译成二进制代码,这样可以提高执行效率。

  2. 可重用性:存储过程可以在多个地方被调用,避免了重复编写相同的SQL语句。

  3. 安全性:存储过程可以对数据库的访问权限进行控制,只允许授权的用户执行。

  4. 简化复杂操作:存储过程可以包含控制流程的代码,使得执行复杂的业务逻辑变得简单。

  5. 提高性能:存储过程可以减少网络传输的数据量,提高数据库的性能。

3.存储过程的基本语法:

(1)创建

创建存储过程可以使用SQL Server Management Studio(SSMS)等工具,以下是创建存储过程的一般步骤:

  1. 使用CREATE PROCEDURE语句创建存储过程的模板。语法如下:

    CREATE PROCEDURE procedure_name
        @parameter1 datatype,
        @parameter2 datatype,
        ...
    AS
    BEGIN
        -- 存储过程的代码逻辑
    END
    

    ps:

    • procedure_name:存储过程的名称。
    • @parameter1, @parameter2, …:存储过程的输入参数,可以根据需要指定多个参数,并指定对应的数据类型。
    • AS和BEGIN/END之间是存储过程的代码逻辑。
  2. 在BEGIN和END之间编写存储过程的代码逻辑。可以包含各种SQL语句、条件语句、循环语句、变量和参数等。

  3. 执行CREATE PROCEDURE语句,将存储过程保存到数据库中。

(2)使用

  EXEC [schema_name.]procedure_name @parameter1 = value1, @parameter2 = value2, ...

4.存储过程的3个示例:

下面是三个创建和使用存储过程的示例:

(1)创建一个Contact表的名为“Contactproc”,无参,用于查询Contact表中的所有内容:

CREATE PROCEDURE Contactproc
AS
BEGIN
select * from Contact 
END

在这里插入图片描述

exec Contactproc

在这里插入图片描述

(2)创建一个Contact表的名为“ContactprocN”,含一个参数,用于模糊查询姓名的存储过程:

CREATE PROCEDURE ContactprocN
    @Name nvarchar(50)
AS
BEGIN
    SELECT * FROM Contact WHERE Name LIKE '%' + @Name + '%'
END

在这里插入图片描述

exec ContactprocN @Name = '王'

在这里插入图片描述

(3)创建一个Contact表的名为ContactprocNG,含两个参数,查询条件是姓+群组

Alter PROCEDURE ContactproNG
@Name nvarchar(50),
@GroupId int
AS
BEGIN
select * from Contact Where  Name  LIKE @Name + '%'  AND GroupID = @GroupId 
END

在这里插入图片描述

exec ContactproNG @Name = '张',@GroupID = '2'

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/768546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6.6Jmeter远程调度Linux机器Jmeter测试

1、配置Agent和启动 1.1、打开jmeter/bin目录下的jmeter.properties 1、server_port1099取消注释 2、remote_hosts127.0.0.1 改为remote_hosts127.0.0.1:1099 或者是remote_hostsAgent机的ip:1099 3、server.rmi.localport1099 4、server.rmi.ssl.disablefalse改为true&#x…

MySQL5.7升为8.0新指南

MySQL5.7升为8.0新指南 一、效果图 俗话说的好:有图有真相 升级前 升级后 二、核心思路 以官方教程为主,各种博文为辅,实践出真知 官方教程网址:https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html 重点内容重…

微信小程序——字符串截取

indexOf() : 判断一个字符是否在字符串 中 存在,如果存在返回该元素或字符第一次出现 的 位置 的 索引,不存在返回-1。 lastIndexOf() : 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。…

Go语言之文件操作,读写文件,其他文件操作

编码 ASCII表 众所周知,计算机起源于美国,英文只有26个字符,算上其他所有特殊符号也不会超过128个。字节是计算机的基本储存单位,一个字节(bytes)包括八个比特位(bit),能够表示出256个二进制数字,所以美国人在这里只是…

大语言模型:从应用到产出;百度网盘推出AI的图搜功能

🦉 AI新闻 🚀 百度网盘推出基于AI的高级图搜功能,提供更精确、全面的搜索结果 摘要:百度网盘近日推出了一项名为“高级图搜”的AI功能。通过基于向量的语义搜索,该功能可以理解时间、地点、人物、事件等组合搜索语句…

LeetCode 热题 100(二):滑动窗口。3. 无重复字符的最长子串、 438.找到字符串中所有字母异位词

滑动窗口例题: 一、3. 无重复字符的最长子串 题目要求:就是说找到包含不同字母最长的串。 思路:可以想到使用set去重,同时应用滑动窗口。本质上还是双指针法,l是窗口左边界 r是窗口右边界。 如果set包含了当前字母就…

Can总线概述

1:Can总线简介 CAN总线是控制器局域网络(Controller Area Network,CAN)的简称,由德国BOSCH公司开发,并最终成为国际标准(ISO 11898-1),是一种串行数据通信总线。 在当前…

webpack-theme-color-replacer+elementui自定义配置主题色

webpack-theme-color-replacer原理是通过获取到配置数组里的颜色值,在触发换色方法时,elementui使用的颜色值存在与配置表中颜色一致的颜色,则改颜色会被替换成新的颜色值。 若是自定义的css文件,需要配置css文件路径 若是需要修…

视频弹题、视频答题来实现视频防录屏和防挂机

视频弹题、视频答题来实现视频防录屏和防挂机 1.视频播放到某个时间点,弹出问题卡,学员只有正确回答课件视频中弹出的问题之后才能继续观看视频。 2.通过互动问答的方式,不仅有利于巩固前边学习的知识点,评估学员的学习效果&#…

ShardingSphere分库分表实战之水平分库和水平分表

🚀 ShardingSphere 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜&…

边框动画 单边追随

时间短就直接看第三个使用 clip-path animation 完成。 <!DOCTYPE html> <html><head><style>/* 第一个 */.btn {width: 100px;height: 40px;background: yellow;position: relative;display: flex;align-items: center;justify-content: center;bor…

Unity游戏源码分享-单车骑行游戏

Unity游戏源码分享-单车骑行游戏 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88057717

【问题总结】Docker环境下备份和恢复postgresql数据库

目录 文章目录 以从备份恢复forest_resources库为例一、备份数据库二、需要还原的数据库准备1 删除掉远程的库。2 重新创建一个空的库。可以使用sql3 找到数据库存放的路径&#xff0c;并将备份文件上传到对应的路径下 三、 进入docker容器内部&#xff0c;执行数据库恢复附录…

C++拷贝构造函数原理解析

喵~ 一、构造函数1.1 默认构造函数1.2 自定义的默认构造函数1.3 自定义带参数的构造函数 二、拷贝构造函数的基本使用2.1 浅拷贝和深拷贝&#xff08;原理及区别&#xff09; 一、构造函数 在C面向对象的学习中&#xff0c;对于构造函数应该并不陌生&#xff0c;有默认的构造函…

第47节:cesium 热力图效果(含源码+视频)

结果示例: 完整源码: index.html中增加<script src="./static/lib/heatmap.js"></script> heatmap.js /** heatmap.js v2.0.5 | JavaScript Heatmap Library** Copyright 2008-2016 Patrick Wied <heatmapjs@patrick-wied.at> - All rights re…

了解 3DS MAX 3D摄像机跟踪设置:第 7 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 在SynthEyes中跟踪素材 步骤 1 打开SynthEyes软件。 打开合成之眼 步骤 2 在跟踪素材之前&#xff0c;您需要设置首选项。因为&#xff0c;你 稍后将在 3ds Max 中工作&#xff0c;必须根据 3ds Max…

双电源并用问题与解决方案

双电源并用问题 曾经有客户在电源模块应用过程中出现过这样的应用场景&#xff0c;如下图1所示。客户使用两路电源给后端电路进行供电&#xff0c;要求在不断电的情况下切换输入电源&#xff0c;此过程中发现后端电路会出现损坏。对各个节点波形进行分析后发现&#xff0c;在给…

在VMware上安装Linux虚拟机

一&#xff0c;下载CentOS操作系统 下载地址&#xff1a;https://vault.centos.org/7.6.1810/isos/x86_64/ 打开下载网址&#xff0c;找到centos-7-x86_64-DVD-1810.iso&#xff0c;下载即可。 下载的漫长等待。。。。。 二、创建虚拟机 打开下载好的VMware。 点击创建新的虚拟…

SPI 的初识

SPI 介绍 Q: SPI 是什么&#xff1f; A: SPI是串行外设接口&#xff08;Serial Peripheral Interface&#xff09;的缩写&#xff0c;是一种高速的&#xff08;比IIC快&#xff09;&#xff0c;全双工&#xff08;IIC是半双工&#xff09;&#xff0c;同步的通信总线&#xf…

【AUTOSAR】:车载以太网

车载以太网 References参考文献车载以太网的物理连接MACPHYPHY的主从关系100BASE-T1回音消除车载以太网的应用层协议References参考文献 汽车软件通信中间件SOME/IP简述100BASE-T1以太网:汽车网络的发展车载以太网的物理连接 MAC MAC(Media Access Control介质访问)一般集成…