怎样用SQL向数据库中批量的插入数据,主键是随机生成的

想向数据库的一个表中批量的加入数据几十万条,主键是随机生成的20左右位字符串,其他字段无所谓,SQL语句应该怎么写?或者有别的方法也可以

代码如下:

--创建测试表 
CREATE TABLE [Identity]( 
Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--种子的起始值1,步长2 
Number VARCHAR(20) UNIQUE NOT NULL, 
Name VARCHAR(20) NOT NULL, 
Password VARCHAR(20) DEFAULT(123), 
Description VARCHAR(40) NULL 

--插入记录 
INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因为起始值1') 
INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因为起始值1,步长2') 
INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由于字符长度超长,报错插入失败,造成此Id产生后被放弃') 
INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因为第三条记录插入失败') 
--检索记录,查看结果 
SELECT * FROM [Identity]

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-10-24
使用数据类型uniqueidentifier最合适了

--创建表
CREATE TABLE [A_Tmp] (
[Primary_ID] [uniqueidentifier] NOT NULL ,
[Col1] [VarChar] (10) COLLATE Chinese_PRC_CI_AS NULL,
[Col2] [VarChar] (10) COLLATE Chinese_PRC_CI_AS NULL,
[Col3] [VarChar] (10) COLLATE Chinese_PRC_CI_AS NULL
CONSTRAINT [PK_A_Tmp] PRIMARY KEY NONCLUSTERED
(
[Primary_ID]
) WITH FILLFACTOR = 90 ON [PRIMARY]
) ON [PRIMARY]
GO

DECLARE @MyID uniqueidentifier
DECLARE @INT AS INT
SET @INT = 0
WHILE @INT < 500000 --这里设置需要插入多少行
BEGIN
SET @INT = @INT + 1
SET @MyID = NEWID()
INSERT INTO A_Tmp (Primary_ID, Col1, Col2, Col3) SELECT @MyID, '', '', ''
END本回答被提问者和网友采纳

sql数据库如何设置主键自增长
1、打开数据库客户端,点击连接上你的数据库。2、在对应的库上,点击展开表视图。3、右键点击要设置的表,点击‘表设计’4、打开表设计页面,点击选中主键字段。5、点击后,在下方就会出现这个字段的设置,点击勾选上‘Auto Increment’就行了,这个就是自增长的属性。

如何实现在sql表中插入数据同时,ID列自动生成
在创建表的时候可以设置,方法如下,用一下sql语句。create table tableName(id int identity(1,1) primary key,data varchar(50))解释:其中identity(1,1)代表自增,第一个1代表从1开始计数,第二个1代表每次增长1。primary key 表示将该字段设置为主键 ...

c#向sql中插入数据时如何自动生成编号作为主键
插入数据的时候,不要给主键赋值,主键会自动增长 INSERT INTO Test VALUES('Value1')INSERT INTO Test VALUES('Value2')数据表中的数据为:Id Value 1 Value1 2 Value2 当然,如果你不希望Id从1开始,或者希望每条记录之间的增量不为1,你可以这样来创建你的表格:CREATE TABLE Test(Id ...

SQL数据库批量添加数据
1、创建测试表,create table test_batch(id number, v_date date);2、先看插入原始表数据;select t.*, rowid from test_day t;3、批量插入测试数据,insert into test_batch select * from test_day;commit;4、查询表的记录,select t.*, rowid from test_batch t; 可以发现数据一致。批量...

SQL数据库的ID怎么设置为自增(sqlserver设置id自增)
以数据库为例。可以用如下方法:1、先建表:createtabletest (idintnotnull,namevarchar(10))2、在图形界面,找到test表:3、右键此表名,选择“设计”。4、右侧出现的页面,找到要设置主键的列,ID列,然后右键,选择“设置主键”。5、下面一步是要设置自增,在左侧列表中,右键“id列”,然后...

SQL如何实现主键数字自动增加?(SQLSERVER)
create table tableName(id int identity(1,1) primary key,data varchar(50))\/ identity(1,1)就是自动增加,第一个参数是种子值,第二个是增量值;primary key是主键 \/

急!如何使用SQL语句在复制多行数据时实现主键递增?
你没说清楚是从最大值递增,改一下:insert into table1(ID,name,age)select to_char(id+(select max(id from table1)),'0000'),name,age from table1 这样就可以了

sql server 中 怎么让自动增1的主键列 临时的 让它可以手动插入指定值...
打开企业管理器,列的属性里有 自动增长的标识,你要打开,并设置每次自动增长几。看到标识这一栏没,改成 是。

怎样在sql中把主键值设成是自动加1
1、如果你用的是SQL Server数据库,在你设计库表时把Goods_ID字段的数据类型设置为Int,在下面的标识中选择“是”,在标识种子中输入“1”,在标识递增量中输入“1”。这样你的这个Goods_ID字段就可以自动增加1了。2、如果你用的是Access数据库,那才好设置呢,在表中的字段Goods_ID数据类型中选择“自动编号”。3...

vb更新sql中的表时主键如何自动生成?
你这是什么数据库?SQL Server 的话,你可以把CID设为自增加1,这样就可以实现在插入的时候自动生成CID的值了;如果是oracle,你可以在oracle数据库里建个sequense,通过 select sequense.next() from dual 得到自增的序列号;

相似回答