SQL server 实验报错及解决
本博客仅作为学习记录
–
1. 删除模式的时候报错
Cannot drop schema 'tpch'
because it is being referenced by object
'PK__students__3214EC27859AD395'.
`
如果在该模式下建立了表格或视图等,应该先删除这些表、视图,然后才能删除此模式。
–
2. 如果是组合外键(多对多)
foreign key (partkey,suppkey) references
tpch.partsupp(partkey,suppkey)
需要将两个列名对应上主键的两个列名,不能分开
–
3.想修改表列的属性,没有权限
在菜单栏(左上角)选择–》工具–》选项,找到设计器和数据库设计器把阻止保存要求重新创建表的更改取消
–
4.产生派生表的时候报错
派生关系必须要有别名,需要在最后加上 as ‘派生表的别名’
–
5. 执行update子查询报错
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、 >、 >= 之后,或子查询作表达式时,这种情况是不允许的。
添加过滤条件,使子查询只返回一条结果
–
6.仅当使用了列的列表,并且IDENTITY_INSERT为ON时,才能在表’'中为标识列指定显式值
首先设置IDENTITY_INSERT为ON
SET IDENTITY_INSERT stu ON;
再将列名一个个列出
insert into tpch.part(part.name,part.mfgr,part.brand,part.container,part.retailprice,part.size,part.type) select
part.name,part.mfgr,part.brand,part.container,part.retailprice,part.size,part.type from tpch.part;
并且要设定为IDENTITY的列为规定的类型 int,bigint,tinyint 等等
–
其他错误
–
exists 前面不能跟过滤条件,select后面只能跟一个表 把要用的表分在不同的层次中,将所有的过滤条件放在最后一条exists里面
–
union查询必须包含相同的列、表达式或聚集函数,列的数据必须兼容