百度了各种随机生成,集中摘录如下:

一、循环写入千万级测试数据

DECLARE @i int
SET @i = 1
WHILE (@i <=10000000)
BEGIN
INSERT INTO A_User(username,password,addtime,token,roleid)
VALUES('manage6'+CONVERT( CHAR(12), cast(ceiling(rand() * @i*10) as int) ),CONVERT( CHAR(12), cast(ceiling(rand() * @i) as int) ),'2016-11-08 05:01:40',CONVERT( CHAR(14), cast(ceiling(rand() * @i*100) as int) ),cast(ceiling(rand() * 6) as int))
SET @i = @i + 1
END
GO

二、生成一段时间内的随机时间

--生成一段时间内的随机时间
declare @Date_start datetime
declare @Date_end datetime
set @Date_start= '2018-06-01'
set @Date_end=getdate()
select 时间=dateadd(minute,abs(checksum(newid()))%(datediff(minute,@Date_start,@Date_end)+1),@Date_start)

三、随机生成中文名字

DECLARE @fName TABLE(Id INT IDENTITY(1,1) PRIMARY KEY, NAME NVARCHAR(20))    -- 姓氏
DECLARE @lName TABLE(Id INT IDENTITY(1,1) PRIMARY KEY, NAME NVARCHAR(20)) -- 名字 INSERT @fName VALUES
('赵'),('钱'),('孙'),('李'),('周'),('吴'),('郑'),('王'),('冯'),('陈'),('楮'),('卫'),('蒋'),('沈'),('韩'),('杨'),
('朱'),('秦'),('尤'),('许'),('何'),('吕'),('施'),('张'),('孔'),('曹'),('严'),('华'),('金'),('魏'),('陶'),('姜'),
('戚'),('谢'),('邹'),('喻'),('柏'),('水'),('窦'),('章'),('云'),('苏'),('潘'),('葛'),('奚'),('范'),('彭'),('郎'),
('鲁'),('韦'),('昌'),('马'),('苗'),('凤'),('花'),('方'),('俞'),('任'),('袁'),('柳'),('酆'),('鲍'),('史'),('唐'),
('费'),('廉'),('岑'),('薛'),('雷'),('贺'),('倪'),('汤'),('滕'),('殷'),('罗'),('毕'),('郝'),('邬'),('安'),('常'),
('乐'),('于'),('时'),('傅'),('皮'),('卞'),('齐'),('康'),('伍'),('余'),('元'),('卜'),('顾'),('孟'),('平'),('黄'),
('和'),('穆'),('萧'),('尹') INSERT @lName VALUES ('爱'),('安'),('百'),('邦'),('宝'),('保'),('抱'),('贝'),('倍'),('蓓'),('本'),
('必'),('碧'),('璧'),('斌'),('冰'),('兵'),('炳'),('步'),('彩'),('曹'),('昌'),('长'),('常'),('超'),
('朝'),('陈'),('晨'),('成'),('呈'),('承'),('诚'),('崇'),('楚'),('传'),('春'),('纯'),('翠'),('村'),
('殿'),('丁'),('定'),('东'),('冬'),('二'),('凡'),('方'),('芳'),('昉'),('飞'),('菲'),('纷'),('芬'),
('奋'),('风'),('峰'),('锋'),('凤'),('芙'),('福'),('付'),('复'),('富'),('改'),('刚'),('高'),('阁'),
('铬'),('根'),('庚'),('耕'),('公'),('功'),('冠'),('光'),('广'),('归'),('桂'),('国'),('海'),('寒'),
('翰'),('昊'),('浩'),('荷'),('红'),('宏'),('洪'),('鸿'),('厚'),('华'),('存'),('大'),('丹'),('道'),
('德'),('登'),('砥'),('典'),('佃') -- 生成名字
SELECT RTRIM((SELECT NAME FROM @fName WHERE Id = Round(Rand()*(100-1)+1,0)))
+RTRIM(LTRIM((SELECT NAME FROM @lName WHERE Id = Round(Rand()*(100-1)+1,0))))
+RTRIM(LTRIM((SELECT NAME FROM @lName WHERE Id = Round(Rand()*(100-1)+1,0)))) AS 名字

四、生成随机手机号

IF EXISTS(SELECT * FROM sysobjects WHERE name='proc_PhoneNum')
DROP PROCEDURE proc_PhoneNum
GO
CREATE PROCEDURE proc_PhoneNum
@randCardID varchar(19) OUTPUT, --输出参数
@firstNo varchar(4)='132 ' --输入参数,有默认值
AS
DECLARE @r numeric(15,8) --15位数,保留8位小数
DECLARE @tempStr char(10) select @r=RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE()))
SET @tempStr=@r
SET @randCardID=@firstNo+SUBSTRING(@tempStr,3,4)+' '+SUBSTRING(@tempStr,7,4)
GO
--测试
DECLARE @phoneNum nvarchar(20)
EXECUTE proc_PhoneNum @phoneNum OUTPUT
print '产生的随机手机号为:'+@phoneNum
--insert phones values(@phoneNum)

五、生成一定范围的随机数

在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:
1、

select  floor(rand()*N)  ---生成的数是这样的:12.0
select cast( floor(rand()*N) as int)  ---生成的数是这样的:12

2、

select ceiling(rand() * N)  ---生成的数是这样的:12.0
select cast(ceiling(rand() * N) as int)  ---生成的数是这样的:12

其中里面的N是一个你指定的整数,如100,可以看出,两种方法的A方法是带有.0这个的小数的,而B方法就是真正的整数了。
大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:
方法1的数字范围:0至N-1之间,如

cast( floor(rand()*100) as int)

就会生成0至99之间任一整数

方法2的数字范围:1至N之间,如

cast(ceiling(rand() * 100) as int)

就会生成1至100之间任一整数

对于这个区别,看SQL的联机帮助就知了:

比较 CEILING 和 FLOOR

CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
----------------------------------------------------------------------------------
现在,各位就可以根据自己需要使用这两种方法来取得随机数了^_^

另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,很简单,就用newid():

select top N *  from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数

在Sqlserver中生成随机数据的更多相关文章

  1. Django中生成随机验证码(pillow模块的使用)

    Django中生成随机验证码 1.html中a标签的设置 <img src="/get_validcode_img/" alt=""> 2.view ...

  2. 星际SC地图制作中生成随机位置,也包括所有需要随机的效果

    星际SC地图制作中生成随机位置,也包括所有需要随机的效果 利用单位 kakaru T 开头那个, kakaru是随机变化位置 注意kakaru的放置位置和占用格子大小,kakaru周围放上LOCATI ...

  3. 如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...

  4. 如何导出sqlserver中的表数据,sqlserver2008

    sqlserver数据库中的表数据,我们通常想使用一下,可是怎样获取这些数据呢? 1.选择任务->生成脚本 2.选择数据库 3.设置配置,让编写数据的脚本为true 4.保存为sql 5.完成 ...

  5. MOCK.JS 生成随机数据,拦截 Ajax 请求

    mock.js 的用处 前后端分离 :让前端攻城师独立于后端进行开发. 增加单元测试的真实性 :通过随机数据,模拟各种场景. 开发无侵入 :不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响 ...

  6. oracle中生成大批量数据的方法-下

    方法五:使用PLSQL的数据生成器 首先测试环境建立:dept表 CREATE TABLE dept(deptno NUMBER(6),dname VARCHAR2(20),loc VARCHAR2( ...

  7. mock的使名用一(生成随机数据)

    Mock.Random 是一个工具类,用于生成各种随机数据. Mock.Random 的方法在数据模板中称为『占位符』,书写格式为 @占位符(参数 [, 参数]) . var Random = Moc ...

  8. oracle使用DBMS_RANDOM包生成随机数据

    (一)DBMS_RANDOM包信息 DBMS_RANDOM包包含3个存储过程,4个函数,1个类型,一共8个模块,如下. SQL> desc dbms_random Element Type -- ...

  9. 如何使用Visual Studio 2010在数据库中生成随机测试数据

    测试在项目中是很重要的一个环节,在Visual Studio 2010中,在测试方面已经有很好的支持了,比如有单元测试,负载测试等等.在数据测试的方面,Visual Studio 2010,还支持对数 ...

随机推荐

  1. 第一章 介绍Django

    Django是一个网络开发框架,有了这个框架,能是网站开发更高效有趣,能轻松的创建和维护高质量的网站应用. 这一本书的目的是使读者成为一个Django的专家.主要着重两点.第一,深入的解释Django ...

  2. 程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)

    public static DataTable Join(DataTable First, DataTable Second, DataColumn[] FJC, DataColumn[] SJC) ...

  3. 【xampp】windows下XAMPP集成环境中,MySQL数据库的使用

    在已经安装了XAMPP之后,会在你安装的目录下面出现”XAMPP“文件夹,这个文件夹就是整个XAMPP集成环境的目录. 我们先进入这个目录,然后会看到带有XAMPP标志的xampp-control.e ...

  4. ASP.NET Web API编程——文件上传

    首先分别介绍正确的做法和错误的做法,然后分析他们的不同和错误之处,以便读者在实现此功能时可避开误区 1正确的做法 public class AvaterController : BaseApiCont ...

  5. 关于Git学习推荐

    Git学习除了推荐官方网站:https://git-scm.com/之外, 我个人比较推荐初学者或者被动使用者可以学习参考廖雪峰的这个教程:https://www.liaoxuefeng.com/wi ...

  6. iOS之3DTouch的使用---很简单,看我就够啦~~

    3DTouch是苹果在iOS9之后新推出的功能,功能大致可以分成两种,一种是长按app的icon,会出现以下的界面,还有一种是在app内部的某个视图上使用,效果如下图. 详细的效果也可以参见微信.微信 ...

  7. Xcode7解决VVDocumenter 不能使用的方案

    Xcode7解决VVDocumenter 不能使用的方案 VVDocumenter-Xcode是Xcode上一款快速添加标准注释,并可以自动生成文档的插件.有了VVDocumenter-Xcode,规 ...

  8. apache Rewrite配置(转)

    1.Rewrite规则简介: Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果要 ...

  9. Oracle GoldenGate同步服务归档空间维护

    ORA-00257: archiver error. Connect internal only, until freed 查看归档日志序列 SQL> archive log list; Aut ...

  10. Webstorm设置代码提示

    下载路径: https://github.com/virtoolswebplayer/ReactNative-LiveTemplate 本插件可以配合Webstorm设置代码提示. Mac下安装 We ...