【Sql Server】存储过程的创建和调用,随机添加域名记录

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
.cn 域名,1个 12个月
简介: 假设有这样一个场景 创建一个储存过程A,它执行添加一条随机产生3到8位长度的域名记录,通过定时器T1每隔1秒执行一次存储过程A 创建另一个存储过程B,它执行统计域名的长度3到8的记录数,通过定时器T2每隔1秒执行一次存储过程B

作者:小5聊基础

简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑

编程原则:Write Less Do More

效果

1673534067933.jpg

主要知识点列表

编号 语言或插件 知识点 说明
1 sql create table 创建表关键词,比如:create table myName(字段1,字段2,)
2 sql identity(1,1) 自增长标识,一般用到两个参数,标识增量和标识种子
3 sql primary key 主键标识
4 sql create proc 创建存储过程关键词,proc是procedure缩写,也可以用完整词语
5 sql as 一般用在别名,也有用到存储过程中的名称或参数之后,标志语句的开始
6 sql begin ... end 相当于花括号,表示代码体
7 sql declare 定义变量关键词,比如:declare @rows int,@rows是一个整数类型变量,set @rows=1,赋值操作
8 sql rand() 随机函数,15位小数点,0.782169054626712
9 sql round() 四舍五入,可指定保留小数点位数,round(rand()* 8,0),不保留小数点
10 sql while循环 没有for关键词,可以使用while实现,因为数据库专注于数据而不是编程,个人猜测只需要保留一个能够实现循环的关键词即可,没必要那么多
11 sql if 逻辑条件判断
12 sql count() 统计函数,比如:统计记录行数
13 sql insert into ... values() 添加记录关键词,配合values一起使用
14 sql getdate() 获取当前时间值
15 sql getutcdate() 获取当前UTC国际标准时间值,如果是国外项目,那么utc时间比较适合,方便统一转为当地时间


【简单了解下存储过程】

1)Ta是语句集

2)只需要编译一次即可重复调用

3)一般大型数据库中都会有存储过程的功能

4)是数据库中的一个重要对象 5)指定一个存储过程名称以及输入或输出参数,和方法一样 6)特大数据量的情况下,使用它可以提升效率 7)可以直接在数据库中调用,也可以通过C#、java、php等语言调用

【存储过程的特点】

1)预编译

已经编译在数据库中,每次直接通过名称调用即可,比执行普通sql语句效率要高,复用性高

2)外网调用省流量

如果每次都是传递数百数千行sql语句,那么肯定会需要一定的流量消耗,特别是多访问的情况下,消耗会更多,特别是按流量计费。

存储过程就可以直接传一个名字和参数就减少了很多流量

3)高维护

修改内容时,只需要修改一个地方即可

4)高安全

可针对某一个用户进行身份限制

【创建表】

创建一张域名表,用于保存随机生成的域名记录

createtable domain_table(  id int identity(1,1) primary key,  domain_value varchar(50),  domain_length int,  title varchar(100),  describe varchar(500),  create_time datetime)

【创建存储过程】

create procedure createDomainValue
asbegin  declare @rows int  declare @index int  declare @length int  declare @str varchar(50)  declare @domain_value varchar(50)  declare @random int  declare @temp varchar(50)set @domain_value=N''--拼接字符串,必须先初始化set @index=1set @str='abcdefghijklmnopqrstuvwxyz0123456789'set @length=3+round(rand()*5,0)  while @index<=@length
beginset @random=round(rand()*34,0)--0~35随机下标set @temp=substring(@str,@random,1)--截取1位长度值\set @domain_value+=@temp 
set @index+=1  end
--随机产生域名,此处域名组合使用顶级的国际域名  declare @full_domain varchar(50)set @full_domain='www.'+@domain_value+'.com'--查询记录是否存在,不存在则添加,存在则不做任何操作select @rows=count(1)from domain_table where domain_value=@full_domain
  if @rows<=0begininsertinto domain_table(domain_value,domain_length,create_time)values(@full_domain,@length,getdate())  end
end

需要注意的地方

1)拼接字符串,必须先定义字符串变量并初始化,如下

declare @domain_value varchar(50)set @domain_value=N''

【调用存储过程】

通过存储过程的名称来调用,并查询记录是否执行成功

exec createDomainValue
select*from domain_table
相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
8天前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
16天前
|
SQL DataWorks NoSQL
DataWorks产品使用合集之如何将SQL Server中的数据转存到MongoDB
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
244 1
|
1月前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
162 1
|
1月前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
25 1
|
9天前
|
SQL 存储 关系型数据库
关系型数据库中的SQL Server
【6月更文挑战第11天】
44 3
|
8天前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
9天前
|
SQL 弹性计算 API
云服务器 ECS产品使用问题之如何通过API调用阿里云服务器上SQL Server数据库中的数据
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
21天前
|
存储 SQL 数据库
SQL 语言:存储过程和触发器
SQL 语言:存储过程和触发器
32 6
|
1天前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之如何迁移SQL Server
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5天前
|
SQL 存储 关系型数据库
ArcGIS Engine连接ArcSDE SQL Server(获得所有SDE图层)
ArcGIS Engine连接ArcSDE SQL Server(获得所有SDE图层)

热门文章

最新文章