SqlServer 随机生成中文姓名和随机时间(转)

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 名字

或者先把姓氏和名字提前放到表里。

--------------创建姓氏表和名字表
create table XingShi(
   Id INT IDENTITY(1,1) PRIMARY KEY,
   NAME NVARCHAR(20)
)
create table MingZi(
   Id INT IDENTITY(1,1) PRIMARY KEY,
   NAME NVARCHAR(20)
)
INSERT XingShi VALUES
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),('')
--select * from xingshi
INSERT MingZi VALUES (''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
('殿'),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),(''),('广'),(''),(''),(''),(''),(''),
(''),(''),(''),(''),(''),(''),(''),('鸿'),(''),(''),(''),(''),(''),(''),
(''),(''),(''),(''),('')
--select * from MingZi

SELECT RTRIM((SELECT NAME FROM XingShi WHERE Id = Round(Rand()*(100-1)+1,0)))
+RTRIM(LTRIM((SELECT NAME FROM MingZi WHERE Id = Round(Rand()*(100-1)+1,0))))
+RTRIM(LTRIM((SELECT NAME FROM MingZi WHERE Id = Round(Rand()*(100-1)+1,0)))) AS 名字



随机时间:

declare @Date_start datetime 
declare @Date_end datetime 
declare @OrderDate datetime

set @Date_start= '2018-01-01' 
set @Date_end=getdate() 
select @OrderDate=dateadd(minute,abs(checksum(newid()))%(datediff(minute,@Date_start,@Date_end)+1),@Date_start)

循环生成10个人名,随机年龄到数据库中:

declare @i int
declare @tempName varchar(10)
set @i=1
while(@i<=10)
begin

set @tempName=(SELECT RTRIM((SELECT NAME FROM XingShi WHERE Id = Round(Rand()*(100-1)+1,0)))
+RTRIM(LTRIM((SELECT NAME FROM MingZi WHERE Id = Round(Rand()*(100-1)+1,0))))
+RTRIM(LTRIM((SELECT NAME FROM MingZi WHERE Id = Round(Rand()*(100-1)+1,0)))) AS mname)
INSERT INTO [dbo].[MyClass]
           ([Sname]
           ,[Sage]
           ,[Sdate])
     VALUES
           (@tempName
           ,cast(ceiling(rand() * 100) as int)
           ,getdate())
set @i=@i+1
end
原文地址:https://www.cnblogs.com/25miao/p/11942871.html