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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 假设有这样一个场景 创建一个储存过程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博客。
相关文章
|
14天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
1月前
|
存储 SQL Go
sqlserver存储过程
sqlserver存储过程
19 0
|
1月前
|
存储 SQL 数据库
sqlserver中常用的几个存储过程
sqlserver中常用的几个存储过程
48 0
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
24天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
17 0
|
1月前
|
存储 SQL 数据库
sql serve存储过程
sql serve存储过程
14 0
|
14天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
82 6
|
2天前
|
SQL 关系型数据库 MySQL
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
9 0
|
9天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
20 0
|
14天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例