YaMemory 2016-10-09 13:19 采纳率: 100%
浏览 1975
已采纳

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条回答

  • wfq0516 2016-10-09 13:29
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料