SQLSERVER 插入数据问题 INSERT 多条重复数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLSERVER 插入数据问题 INSERT 多条重复数据相关的知识,希望对你有一定的参考价值。

有表A
字段多列:(F_ID INT ,F_NAME VARCHAR(20))
我要在表A里插入100行 这样的值 VALUES(1,'AAA')
200行 这样的值 VALUES(2,'BBB')
有啥简单的方法。
环境为SQLSERVER2000

如果只是想插入几百行的话就这么写

INSERT INTO A(F_ID,F_NAME)
SELECT TOP 100 1,'AAA'
FROM master.dbo.syscolumns

INSERT INTO A(F_ID,F_NAME)
SELECT TOP 200 2,'BBB'
FROM master.dbo.syscolumns

能插入的最大行数取决于系统表syscolumns的记录数
参考技术A 首先连接数据库,并将页面填写的值通过insert 插入到你的用户表里去。
修改数据库表单列类型可用:
alter table tablename alter column userid int 在查询分析器下执行一下便可

补充问题:
怎么样让id不重复?添加的时候先别执行插入,先检索一下数据库中是否已经存在即将要插入的id,如果存在则提示该用户名已经被使用了。否则才执行插入;
语法:select count(*) from users where userid='"+userid+"'
然后判断返回来的行数是否大于0,如果大于0则证明该用户名存在,不允许再次插入,如果为0则执行插入
参考技术B 在查询分析器中输入下面内容,可以完成100行的那个,200行的同理。
=====================
declare @i int
set @i=0
while @i<100

begin
insert into test(id,tt) values (1,'AAA')
set @i=@i+1
end
参考技术C insert into A(f_id,f_name)values(1,'AAA')
go 100
insert into A(f_id,f_name)values(2,'BBB')
go 200

sqlserver 自增ID插入指定数据

set identity_insert 表名 ON --允许对自增列Id插入指定数据
insert into table_name(Id,Name) values(1,‘test‘)
set identity_insert 表名 OFF --关闭对自增列Id插入指定数据

注意:

1.set identity_insert只对当前会话生效。

2.set identity_insert 表名 ON 设置后,必须显示指定Id,否则插入错误。如insert into table_name values(‘111‘)将报错。

   向自增ID插入指定值。 报错:“当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘ ‘ 中的标识列插入显式值”。

   插入语句未显示指定ID。 报错:“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表‘ ‘中的标识列指定显式值”。

以上是关于SQLSERVER 插入数据问题 INSERT 多条重复数据的主要内容,如果未能解决你的问题,请参考以下文章

简单的sqlserver批量插入数据easy batch insert data in sqlserver

SQLServer视图用insert into插入,报错!!

SQLServer之创建DML AFTER INSERT触发器

sqlserver数据库批量插入-SqlBulkCopy

sqlserver中set IDENTITY_INSERT on 和 off 的设置方法

使用SQLServer2005插入一条数据时返回当前插入数据的ID