【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
相关文章
|
2月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
|
2月前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
|
2月前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
76 1
|
2月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
|
2月前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
53 3
|
2月前
|
存储 SQL 安全
|
2月前
|
存储 SQL 数据库
使用SQL创建视图和存储过程
使用SQL创建视图和存储过程
19 0
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
119 0
|
4月前
|
存储 SQL 数据库
如何使用 SQL Server 创建存储过程?
【8月更文挑战第31天】
194 0