生成测试数据-3-T-SQL系列
2009-11-06 14:24
585 查看
按指定次数重复字符表达式。
字符数据型的字母数字表达式,或者可以隐式转换为 nvarchar或ntext 的其他数据类型的字母数字表达式。
integer_expression
可以隐式转换为 int 的表达式。如果 integer_expression 为负,将返回空字符串。
(3) 若想确认每次执行RAND()函数是否产生不同的结果,应该为RAND()指定种子,即把一个整数置于圆括号中。可以用@@spid ,即新建表的object_id,或其它“几乎随机”的整数作为种子值。
用另一种方法实现:
语法
REPLICATE (character_expression, integer_expression) |
参数
character_expression字符数据型的字母数字表达式,或者可以隐式转换为 nvarchar或ntext 的其他数据类型的字母数字表达式。
integer_expression
可以隐式转换为 int 的表达式。如果 integer_expression 为负,将返回空字符串。
返回值
nvarchar 或 ntext(3) 若想确认每次执行RAND()函数是否产生不同的结果,应该为RAND()指定种子,即把一个整数置于圆括号中。可以用@@spid ,即新建表的object_id,或其它“几乎随机”的整数作为种子值。
IF (ISNULL(OBJECT_ID(''random_data''),0))>0 DROP TABLE random_data GO CREATE TABLE random_data ( COL1 int PRIMARY KEY, col2 int, col3 char(15) ) GO DECLARE @counter int,@col2 int,@col3 char(15) /*Insert 1000 rows of date */ --Seed Random generator SELECT @counter=0,@col2=RAND(@@spid+cpu+physical_io) FROM master..sysprocesses WHERE spid=@@spid WHILE (@counter<1000) BEGIN SELECT @counter=@counter+10, --Sequence numbers by 10 @col2= CASE --Random integer between -9999 and 9999 WHEN CONVERT(int,RAND()*100)%2=1 THEN (CONVERT(int,RAND()*100000)%10000*-1) ELSE CONVERT(int,RAND()*100000)%10000 END, @col3= CHAR((CONVERT(int,RAND()*1000)%26)+65) --65 is A +CHAR((CONVERT(int,RAND()*1000)%26)+65) +CHAR((CONVERT(int,RAND()*1000)%26)+65) +CHAR((CONVERT(int,RAND()*1000)%26)+65) +REPLICATE(CHAR((CONVERT(int,RAND()*1000)%26)+65),11) INSERT random_data valueS(@counter,@col2,@col3) END GO SELECT * FROM random_data WHERE col1<200
用另一种方法实现:
CREATE TABLE random_data ( COL1 int PRIMARY KEY IDENTITY(10,10) NOT NULL, col2 int NOT NULL DEFAULT CASE --Random integer between -9999 and 9999 WHEN CONVERT(int,RAND()*100)%2=1 THEN (CONVERT(int,RAND()*100000)%10000*-1) ELSE CONVERT(int,RAND()*100000)%10000 END, col3 char(15) NOT NULL DEFAULT CHAR((CONVERT(int,RAND()*1000)%26)+65) --65 is A +CHAR((CONVERT(int,RAND()*1000)%26)+65) +CHAR((CONVERT(int,RAND()*1000)%26)+65) +CHAR((CONVERT(int,RAND()*1000)%26)+65) +REPLICATE(CHAR((CONVERT(int,RAND()*1000)%26)+65),11) ) GO DECLARE @counter int SELECT @counter=1 WHILE (@counter<1000) BEGIN INSERT random_data DEFAULT valueS SET @counter=@counter+1 END GO SELECT * FROM random_data WHERE col1<200
相关文章推荐
- 生成测试数据-2-T-SQl系列 RAND( ) 的一般用法
- 使用Sql生成测试数据(转贴)
- Oracle中如何用一条SQL快速生成10万条测试数据
- Oracle中如何用一条SQL快速生成10万条测试数据
- Postgresql 随机生成测试数据sql
- Oracle中如何用一条SQL快速生成10万条测试数据
- 用一条SQL快速生成10万条测试数据
- 一条SQL快速生成大量的测试数据
- Oracle中如何用一条SQL快速生成10万条测试数据
- 【转】Oracle中如何用一条SQL快速生成10万条测试数据
- 借助数据库执行sql语句批量生成测试数据
- SQL自动生成测试数据加强版(转)
- Oracle中如何用一条SQL快速生成10万条测试数据
- 使用Sql生成测试数据
- 使用 SQL 生成大量测试数据
- oracle一句sql生成10w行测试数据
- Oracle中如何用一条SQL快速生成10万条测试数据
- 使用 SQL 生成大量测试数据
- Oracle中如何用一条SQL快速生成10万条测试数据
- 使用Sql生成测试数据