【Sql Server】随机查询一条表记录,并重重温回顾下存储过程的封装和使用

大家好,我是全栈小5,欢迎来到《小5讲堂》。
这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 前言
  • 随机查询语句
  • 存储过程
    • 基本概念
    • 基本结构
    • 基础例子
    • 存储过程封装
  • 文章推荐

前言

温故而知新,最近在写sql查询语句,需求是随机查询表的其中一条记录。
基于这个查询,顺便把数据库自定义函数、存储过程这个两个知识点重温固定下。
因此,本篇文章将在随机查询一条表记录的基础上,把sql语句封装到存储过程里。

随机查询语句

要在SQL Server中随机生成一条记录,可以使用ORDER BY NEWID()来随机排序结果集,并使用TOP 1来限制结果集返回一条记录。
例如:

select top 1 * 
from(select 1 as id,'张三11' as nameValue union all select 2 as id,'张三22' as name union all select 3 as id,'张三33' as nameValue union all select 4 as id,'张三44' as name union allselect 5 as id,'张三55' as nameValue union all select 6 as id,'张三66' as name union allselect 7 as id,'张三77' as nameValue union all select 8 as id,'张三88' as name
) a
order by newid()select 1 as id,'张三11' as nameValue union all select 2 as id,'张三22' as name union all 
select 3 as id,'张三33' as nameValue union all select 4 as id,'张三44' as name union all
select 5 as id,'张三55' as nameValue union all select 6 as id,'张三66' as name union all
select 7 as id,'张三77' as nameValue union all select 8 as id,'张三88' as name

在这里插入图片描述

存储过程

基本概念

在 SQL Server 中,存储过程是一组预编译的 SQL 语句和逻辑,存储在数据库服务器上以便重复使用。
它们类似于应用程序中的函数,可以接受参数并执行一系列的 SQL 语句,然后返回结果或执行特定的操作。
存储过程可以帮助提高性能、安全性和可维护性,同时减少网络流量。
存储过程通常用于执行复杂的数据操作、事务控制、权限控制等。

基本结构

CREATE PROCEDURE [schema_name.]procedure_name@parameter1 datatype,@parameter2 datatype
AS
BEGIN-- 存储过程逻辑
END;
  • schema_name(可选):存储过程所属的模式。
  • procedure_name:存储过程的名称。
  • @parameter1, @parameter2:存储过程的参数列表,包括参数名和数据类型。
  • AS:指示存储过程逻辑的开始。
  • 存储过程逻辑:存储过程内部包含一系列 SQL 语句和控制流程,用于执行特定的操作或计算。
  • END:指示存储过程逻辑的结束。
    存储过程可以包含各种 SQL 语句、条件控制、循环等逻辑,以及事务处理和错误处理代码。创建存储过程后,可以通过调用存储过程的名称并传递相应的参数来执行它。

基础例子

下面是一个简单的 SQL Server 存储过程的示例,该存储过程接受一个参数 @employee_id,并返回该员工的姓名和工资信息:

CREATE PROCEDURE GetEmployeeInfo@employee_id INT
AS
BEGINSELECT EmployeeName, SalaryFROM EmployeesWHERE EmployeeID = @employee_id;
END;

在这个示例中:

  • 存储过程名为 GetEmployeeInfo。
  • 参数 @employee_id 的数据类型为 INT。
  • 存储过程的逻辑部分使用了简单的 SELECT 查询语句,根据提供的 @employee_id 查询员工的姓名和工资信息。
  • END 结束存储过程的逻辑部分。
    要执行这个存储过程,可以使用如下的 SQL 语句:
EXEC GetEmployeeInfo @employee_id = 12345;

其中 12345 是要查询的员工的 ID。

存储过程封装

-- 创建存储过程
create procedure getDataPro@id int
as
beginselect top 1 *from(select 1 as id,'张三11' as nameValue union all select 2 as id,'张三22' as name union all select 3 as id,'张三33' as nameValue union all select 4 as id,'张三44' as name union allselect 5 as id,'张三55' as nameValue union all select 6 as id,'张三66' as name union allselect 7 as id,'张三77' as nameValue union all select 8 as id,'张三88' as name) awhere id=1order by newid()
end-- 执行存储过程
exec getDataPro 8

在这里插入图片描述

文章推荐

【Sql Server】随机查询一条表记录,并重重温回顾下自定义函数的封装和使用

【Sql Server】锁表如何解锁,模拟会话事务方式锁定一个表然后进行解锁

【Sql Server】通过Sql语句批量处理数据,使用变量且遍历数据进行逻辑处理

【新星计划回顾】第六篇学习计划-通过自定义函数和存储过程模拟MD5数据

【新星计划回顾】第四篇学习计划-自定义函数、存储过程、随机值知识点

【Sql Server】Update中的From语句,以及常见更新操作方式

【Sql server】假设有三个字段a,b,c 以a和b分组,如何查询a和b唯一,但是c不同的记录

【Sql Server】新手一分钟看懂在已有表基础上修改字段默认值和数据类型

总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

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

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

相关文章

小程序大能量:盲盒平台搭建与营销策略

一、引言 在移动互联网的浪潮下,小程序以其轻量级、即用即走的特点,成为了商家与消费者沟通的新桥梁。盲盒经济作为近年来兴起的消费趋势,结合小程序平台,不仅为用户带来了全新的购物体验,也为商家带来了更多的商业机…

k8s安装metrics组件

安装完dashboard之后,可以看到k8s所有组件,但各组件cpu内存使用量没有值,还需要安装metrics组件才行,安装完metric就可以看到各node以及pod的cpu/mem实时使用量了 下面是如何安装metrics 下载Metrics Server 配置文件 wget https://github.c…

leetCode.84. 柱状图中最大的矩形

leetCode.84. 柱状图中最大的矩形 题目思路 代码 class Solution { public:int largestRectangleArea( vector<int>& h ) {int n h.size();vector<int> left( n ), right( n );stack<int> st;// 求每个矩形的第一个小于左边界的矩形 - 用单调栈for ( …

颠仆流离学二叉树1 (Java版)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

数码论坛|基于SprinBoot+vue的数码论坛系统(源码+数据库+文档)

数码论坛系统 目录 基于SprinBootvue的数码论坛系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2 管理员功能模块 3 用户后台管理模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&am…

盲人心理辅导课程:心灵的引路人

在这个快节奏的社会中&#xff0c;技术的每一次跃进都在悄然改变着人们的生活方式&#xff0c;尤其对于盲人群体&#xff0c;一款名为“蝙蝠避障”的辅助软件成为了他们探索世界的得力助手。通过实时避障与拍照识别功能&#xff0c;“蝙蝠避障”不仅保障了盲人朋友的日常安全&a…

学习java第八十三天

Spring中Bean的作用域&#xff1f; 1.singleton&#xff08;单例&#xff09;&#xff08;默认的&#xff09;&#xff1a;在整个应用中只创建一个Bean实例&#xff0c;并在容器启动时就创建&#xff0c;以后每次请求都返回同一个实例。 2.prototype&#xff08;原型&#xf…

java配置文件解析yml/xml/properties文件

XML 以mybatis.xml:获取所有Environment中的数据库并连接session为例 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException;import javax.xml.parsers.DocumentBuilder; impo…

【Docker|漏洞】Docker api未授权导致rce

一、漏洞描述 扫描出http://ip地址:4243漏洞&#xff0c;该漏洞可通过Docker pai未授权访问可以直接执行命令&#xff0c;获取服务器权限。 二、解决方案 禁用Docker api远程访问功能&#xff0c;或者通过安全授权等方式限制其使用权限。升级duoker至最新版本。 三、漏洞排查…

一款220V降12V恒压芯片电路原理图WT5114

一款220V降12V恒压芯片电路原理图WT5114&#xff0c;电路图简示如下&#xff1a; 一款220V降12V恒压芯片线路图WT5114 WT5114是一款高性能、高精度、低成本的PWM电源开关&#xff0c;适用于非隔离降压和反激式应用。它集成了专用电流模式PWM控制器&#xff08;采用SOP8封装的高…

2.8万字总结:金融核心系统数据库升级路径与场景实践

OceanBase CEO 杨冰 谈及数字化转型&#xff0c;如果说过去还只是头部金融机构带动效应下的“选择题”。那么现在&#xff0c;我相信数字化转型已经成为不论大、中、小型金融机构的“必答题”。 本文为OceanBase最新发布的《万字总结&#xff1a;金融核心系统数据库升级路径…

ubuntu安全加固

知识背景&#xff1a; 项目背景&#xff1a; 常用命令&#xff1a; useradd: adduser: getent passwd: getent group: id username: adduser newname sudo: 修改shell为/bin/bash 新用户默认为/bin/sh&#xff0c;可以通过echo $SHELL查询&#xff0c;默认不能使用TAB…

js处理服务器响应Blob对象格式文件处理

js验证http请求返回数据data是否为blob格式&#xff1a; // 验证是否为blob格式 export async function blobValidate(data) {try {const text await data.text();JSON.parse(text);return false;} catch (error) {return true;} }使用场景&#xff1a; import { saveAs } f…

QT加载CAD文件(二)LibreCAD源码编译

一、LibreCAD LibreCAD是一个开源软件&#xff0c;不用破解激活&#xff0c;可以打开编辑DXF格式的文档&#xff0c;软件大小只有二十多M&#xff0c;对于一些比较简单的图纸还是可以胜任的。本文主要讲该软件源码编译。如果了解软件的基本使用可以参考https://blog.csdn.net/…

Vulnhub靶机 whowantsobeking :1 打靶 渗透详细过程(萌新)

Vulnhub靶机搭建配置 先搭建vulnhub靶机&#xff1a;https://www.vulnhub.com/entry/who-wants-to-be-king-1,610/ 下载镜像之后whowantsobeking.ova后&#xff0c;用VMware Workstation Pro打开依次点击文件-打开&#xff0c;选择我们刚才下载的ova文件打开&#xff0c;修改…

【小米手环7】表盘制作指南

2024年了还有人用小米手环7么&#xff1f; 目录 表盘.bin文件情况介绍表盘文件修改/制作教程1、表盘.bin文件组成介绍2、表盘.bin文件获取3、制作表盘的必备工具4、表盘.bin文件修改step 1 模拟器设置step 2 修改app.jsonstep 3 修改index.jsstep 4 更新.bin文件 参考文献 表盘…

全网首发!精选32个最新计算机毕设实战项目(附源码),拿走就用!

Hi 大家好&#xff0c;马上毕业季又要开始了&#xff0c;陆陆续续又要准备毕业设计了&#xff0c;有些学生轻而易举就搞定了&#xff0c;有些学生压根没有思路怎么做&#xff0c;可能是因为技术问题&#xff0c;也可能是因为经验问题。 计算机毕业相关的设计最近几年类型比较多…

新修订的《中华人民共和国保守国家秘密法》新增和修改的内容不包括( )

新修订的《中华人民共和国保守国家秘密法》新增和修改的内容不包括&#xff08; &#xff09; 完整答案查看 A.旗帜鲜明将党的领导写入法律B.加快提升保密科技创新能力 C.把保密宣传教育摆到重要位置 D.细化商业秘密保密管理 新修订的《中华人民共和国保守国家秘密法》明确涉及…

为什么Facebook Marketplace无法使用?如何解决?

Facebook Marketplace是一个允许用户买卖商品的平台&#xff0c;由于其在Facebook内的便捷性&#xff0c;它逐渐成为了一个受欢迎的在线交易市场。然而&#xff0c;做Facebook跨境电商&#xff0c;很多人会面临的情况就是无法使用Facebook Marketplace。这到底是什么原因&#…

C语言经典例题-3

1.汉诺塔问题 //汉诺塔问题&#xff08;递归实现&#xff09; //思路&#xff1a;1.将A中n-1个盘子放入B中&#xff0c;剩下最后一个&#xff08;第n个&#xff09;盘子放入C中。2.将B中n-1个盘子放入A中&#xff0c;剩下最后一个&#xff08;第n个&#xff09;放入C中。#incl…