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条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!