日度归档:2019年10月4日

mssql sqlserver使用sql脚本生成随机手机号码的方法分享


摘要:
下文讲述sqlserver中使用sql脚本生成手机号码的方法分享,如下所示:
实验环境:sql server 2008 R2

  select  '1' + SUBSTRING('358', ABS(CHECKSUM(NewId())) % 3 + 1, 1)
      + CAST(ABS(CHECKSUM(NewId())) % 9 AS VARCHAR)
     + left(CAST(ABS(CHECKSUM(NewId())) AS VARCHAR),8) AS [手机号码]

相关阅读:
mssql sqlserver checkSum同binary_checksum函数用法区别
sqlserver ABS 数学函数将指定数值进行绝对值相关转换操作

mssql sqlserver 使用sql脚本生成随机中文名字的方法分享


摘要:
下文使用sql脚本生成中文名字的方法分享,如下所示:
实验环境:sql server 2008 R2

在工作中,我们有时需要批量生成随机姓名,下面将讲述使用sql脚本生成随机”名字”的方法分享,如下所示:

实现思路:
1.定义一个姓氏库
2.定义一个名字库
3.使用rand选择随机行,然后组合成一个新的名字

DECLARE @maomao_Xing TABLE(keyId INT IDENTITY(1,1) PRIMARY KEY, NAME NVARCHAR(20))    -- 姓氏
DECLARE @maomao_Ming TABLE(keyId INT IDENTITY(1,1) PRIMARY KEY, NAME NVARCHAR(20))    -- 名字

INSERT @maomao_Xing VALUES
('赵'),('钱'),('孙'),('李'),('西'),('吴'),('郑'),('王'),('冯'),('陈'),('楮'),('卫'),('蒋'),('沈'),('韩'),('杨'),
('朱'),('秦'),('尤'),('许'),('何'),('吕'),('施'),('张'),('孔'),('曹'),('严'),('华'),('金'),('魏'),('陶'),('姜'),
('戚'),('谢'),('邹'),('喻'),('柏'),('水'),('窦'),('章'),('云'),('苏'),('潘'),('葛'),('奚'),('范'),('彭'),('郎'),
('鲁'),('韦'),('昌'),('马'),('苗'),('凤'),('花'),('方'),('俞'),('任'),('袁'),('柳'),('酆'),('鲍'),('史'),('唐'),
('费'),('廉'),('岑'),('薛'),('雷'),('贺'),('倪'),('汤'),('滕'),('殷'),('罗'),('毕'),('郝'),('邬'),('安'),('常'),
('乐'),('于'),('时'),('傅'),('皮'),('卞'),('齐'),('康'),('伍'),('余'),('元'),('卜'),('顾'),('孟'),('平'),('黄'),
('和'),('穆'),('萧'),('尹'),('赖')

INSERT @maomao_Ming  VALUES ('爱'),('安'),('百'),('邦'),('宝'),('保'),('抱'),('贝'),('倍'),('蓓'),('本'),
('必'),('碧'),('璧'),('斌'),('冰'),('兵'),('炳'),('步'),('彩'),('曹'),('昌'),('长'),('常'),('超'),
('朝'),('陈'),('晨'),('成'),('呈'),('承'),('诚'),('崇'),('楚'),('传'),('春'),('纯'),('翠'),('村'),
('殿'),('丁'),('定'),('东'),('冬'),('二'),('凡'),('方'),('芳'),('昉'),('飞'),('菲'),('纷'),('芬'),
('奋'),('风'),('峰'),('锋'),('凤'),('芙'),('福'),('付'),('复'),('富'),('改'),('刚'),('高'),('阁'),
('铬'),('根'),('庚'),('耕'),('公'),('功'),('冠'),('光'),('广'),('归'),('桂'),('国'),('海'),('寒'),
('翰'),('昊'),('浩'),('荷'),('红'),('宏'),('洪'),('鸿'),('厚'),('华'),('存'),('大'),('丹'),('道'),
('德'),('登'),('砥'),('典'),('佃'),('小'),('狗'),('亲')

-- 随机生成1000个姓名
declare @t table(name nvarchar(3))
declare @i int 
set @i=0

while @i <1000
begin
 insert into @t (name) 
SELECT RTRIM((SELECT NAME FROM @maomao_Xing  WHERE keyId = Round(Rand()*(100-1)+1,0)))
+RTRIM(LTRIM((SELECT NAME FROM @maomao_Ming  WHERE keyId = Round(Rand()*(100-1)+1,0))))
+RTRIM(LTRIM((SELECT NAME FROM @maomao_Ming  WHERE keyId  = Round(Rand()*(100-1)+1,0)))) AS [随机姓名]
set @i =@i+1 
end

select * from @t as t 

mssql_sqlserver_生成随机姓名的方法

mssql_sqlserver_生成随机姓名的方法


相关阅读:
RAND 数学函数将返回 0~1的一个float类型
随机查询数据库表中的一条数据的方法分享

mssql sqlserver 如何获取数据库索引数据最后一次变动时间?


摘要:
下文讲述sqlserver中索引数据最后一次变动时间的方法分享,如下所示:
实验环境:sql server 2008 R2


在sqlserver的日常运维中,我们偶尔需要观察sqlserver中指定索引数据最后一次变动时间,下文将举例分析查看索引数据最后一次变动时间的方法

实现思路:
由于每条索引都会创建相应的统计信息,
那么我们可用通过查阅sys.stats系统视图获取索引所对应的变化时间

---创建测试数据表
SELECT * INTO [maomao365.com] FROM sys.tables

---创建索引 
CREATE INDEX pk_maomao ON [maomao365.com](object_id);
go

 
SELECT  name AS [统计名称] ,
        STATS_DATE(object_id, stats_id) AS [索引数据变动时间]
FROM    sys.stats
WHERE   object_id = OBJECT_ID('dbo.[maomao365.com]')
         
go
CREATE INDEX pk_maomao_2 ON [maomao365.com](name);

go
SELECT  name AS [统计名称] ,
        STATS_DATE(object_id, stats_id) AS [索引数据变动时间]
FROM    sys.stats
WHERE   object_id = OBJECT_ID('dbo.[maomao365.com]')
         
go
ALTER INDEX pk_maomao_2 ON [maomao365.com] REBUILD;
go

SELECT  name AS [统计名称] ,
        STATS_DATE(object_id, stats_id) AS [索引数据变动时间]
FROM    sys.stats
WHERE   object_id = OBJECT_ID('dbo.[maomao365.com]')
         
go
drop index pk_maomao  ON [maomao365.com]
go
truncate table [maomao365.com]
drop     table [maomao365.com]

相关阅读:
mssql 系统表 sys.stats 功能简介