Microsoft SQL Server报错笔记
1、问题描述:SQL Sever 列名或所提供值的数目与表定义不匹配问题解决
问题分析:insert语句没指定列时,默认插入全部列,但是插入的列数量和表格列数量不一致,导致了报错。
问题解决:在insert的表格后面括号内补充添加的列
insert into Stu_Aver(sno,sname)
select sno,sname
from student
问题解决: 
2、问题描述:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。
问题解决:点击工具->选项

点击设计器->表设计器和数据库设计器,可以看到默认是勾选了阻止保存要求重新创建表的更改

取消勾选之后,重新进行保存表的更改,可以看到保存成功了,如下图

3、问题描述:为字段添加约束条件,如:为SC基本表中的Score字段添加约束,取值范围为0—100
alter table SC
add constrant tinyint check(Score between 1 and 100)

问题解决:暂无
4、问题描述:
题目:修改V_S_Score视图,查询选修“数据结构”课程的学生学号、姓名、课程名和成绩。并用SELECT命令查询验证视图内容。
使用的代码:
update V_S_Score
set 学号=s.sno,姓名=sname,课程名=cname,成绩=score
from student s,sc,course
where s.sno=sc.sno and cname='数据结构'

报错:视图或函数 'V_S_Score' 不可更新,因为修改会影响多个基表。
问题解决:
alter view V_S_Score
as select s.sno,sname,cname,score
from student s,sc,course
where s.sno=sc.sno and cname='数据结构';
select *
from V_S_Score

update--修改数据
alter--修改字段
5、问题描述:
题目:为Course表创建名为IX_Cname的按课程名升序的唯一索引

问题解决:修改course表中Cname的类型中MAX改为一个小的数字,如30,即varchar(30),即可,因长文本不宜建索引
原来的cname数据类型是nvarchar(max)
改成

再运行代码就可以实现啦
create unique index IX_Cname on course(cname)

本文总结了SQL Server中常见的错误及其解决方法,包括列数不匹配问题的解决、阻止保存表更改选项的取消、字段约束添加、视图更新限制及唯一索引创建等问题。通过实例和代码演示了解如何解决这些问题。
&spm=1001.2101.3001.5002&articleId=124260737&d=1&t=3&u=3794e5af358e41b6b712ae17030fec98)
2461

被折叠的 条评论
为什么被折叠?



