SQL Server 2008R2如何同时插入多条语句

最近因课程安排,学习了SQL Server。遇到标题所述问题,我需要在表内一次性插入多条语句。附上代码如下

insert into teacher(teacherno, teachername, major, Prof, department)
values
('t05011', '海峰' , '计算机设计', '副教授', '计算机学院'),
('t05017', '卢明欣', '软件测试' , '讲师' , '计算机学院'),
('t06011', '胡海悦', '机械制造' , '教授' , '机械学院' ),
('t06023', '姚思远', '铸造工艺' , '副教授', '机械学院' ),
('t07017', '刘丽萍', '物联网' , '教授' , '计算机学院'),
('t07017', '刘丽萍', '物联网' , '教授' , '计算机学院'),
('t07019', '马爱芬', '经济管理' , '讲师' , '管理学院' ),
('t08017', '田有余', '金融管理' , '副教授', '管理学院' )

运行结果提示:
_消息 2627,级别 14,状态 1,第 1 行
违反了 PRIMARY KEY 约束 'PK_teacher'。不能在对象 'dbo.teacher' 中插入重复键。
语句已终止。

在MySQL中,这样写明明是有效的,为什么在SQL Server 2008中不行了呢?

然后楼主有做了如下测试
insert into teacher(teacherno, teachername, major, Prof, department)
values
('t05002', '张衣新', '金融' , '助教' , '农机学院' ),('t05003', '刘元朝', '网络技术' , '教授' , '计算机学院')
同样的语句,楼主只是把两条记录由原来的两行变成了一行,结果运行正确。如果只能将多条记录放同一行才能同时插入,那数据一多,岂不是很麻烦?求哪位大神讲解一下。晚生不甚感谢....

注:附上表的创建语句
create table dbo.teacher --创建新表名称为teacher
(
teacherno nchar(6) not null , --设置属性名,数据类型,是否可为空,主键
teachername nvarchar(5) not null,
major nvarchar(10) not null, --设置专业
Prof nvarchar(10) not null, --设置职称
department nvarchar(10) not null --设置学院
constraint PK_teacher primary key clustered(teacherno asc)
--设置主键为teacherno
)
go

2个回答

('t07017', '刘丽萍', '物联网' , '教授' , '计算机学院'),('t07017', '刘丽萍', '物联网' , '教授' , '计算机学院')既然teacherno是主键,这一列就不能插入重复的值

YaMemory
YaMemory 哦,,太不仔细了,,复制粘贴以后忘改这一个值了。。。谢谢啦.....
接近 4 年之前 回复

哦,,太不仔细了,,复制粘贴以后忘改这一个值了。。。谢谢啦.....

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问