步骤
选择菜单栏中的“工具”-“选项”,在选项对话框左栏中找到“设计器”,在设计器右边取消勾选“阻止保存要求重新创建表的更改”即可。
图例
注意
设计表时,尽量一次性设计成功,避免使用alter修改表,修改起来有各种约束,不容易修改。
解决:
选项-环境-文档-取消勾选检查一致的行尾
你设置的数据类型长度(9)比你输入的数据长度(11)短
解决方法:
需要重新设置数据类型长度
int转换为char类型
问题:
1.INSERT 语句与 FOREIGN KEY 约束"FK__departmen__leade__29572725"冲突。该冲突发生于数据库"xmgl",表"dbo.staff", column ‘sno’。
解决方法:
先删除该约束,插入数据后,再加上约束
原因:
没有设置id为标识:是
int数据类型,并且双击为:是
注意:
数据类型为int时,才可设置表规范为:是
打开SQL dbms软件,右键表——设计——列属性:
如图:
“FK__departmen__leade__19DFD96B"冲突。该冲突发生于数据库"xmgl”,表"dbo.staff", column ‘sno’。
因为该Student表中是有数据的,所以增加不了外键。
创建外键中,把“在创建或重新启动时检查现有数据”改为否!!!
如果数据表中都没有数据,可以默认为是。但是数据表中都有数据才创建外键,就要把这里改为否,才能创建成功。
解决:
给所在表设置主键
总:
一个一个表按照顺序插入
设置好数据类型
原因:
修改表结构后,使用SQL语句时,会出现列名无效,原因为SQL Server的intellisense(智能感知功能)
解决:
使用 Ctrl+Shift+R 快捷键即可
错误例子如下:
select sno, count(sno) 总人数 from STUDENT
正确的应为:
select sno, count(sno) 总人数 from STUDENT group by sno -- 或者为 select count(sno) 总人数 from STUDENT
但查询结果有所不同
添加 go
例如;
go --sql server中 create view MAN_VIEW AS SElect sname ,ssex from student where ssex='男';
例如:
将各系学生人数,平均年龄定义为视图V_NUM_AVG,并查看
-- 错误举例: go create view V_NUM_AVG as select sdept , count(*) , avg(sage) 平均年龄 from student group by sdept -- 查询视图V_NUM_AVG的内容 SELECT * --提示: 关键字 'SELECT' 附近有语法错误 FROM V_NUM_AVG ----------------------正确写法-------------------------------- go create view V_NUM_AVG as select sdept , count(*) , avg(sage) 平均年龄 from student group by sdept -- 查询视图V_NUM_AVG的内容 go --------------加个go即可 SELECT * -- FROM V_NUM_AVG
语法问题, 规定只能有一个聚集索引
Select指定的每一列都应该出现在Group By子句中,除非对这一列使用了聚合函数; Group By中不能出现不在表中的列;
在SQL中,列名或别名不能以数字开头,因此不能直接将列名起别名为数字。然而,可以将数字作为别名的一部分,只需在数字前面添加一个非数字字符,例如下划线或字母。
这里的student为修改索引名时的表名:
EXEC sp_rename ‘student.IX_sage’, ‘sage2’, ‘INDEX’;
解决:
加上 命令 use 表名 之后,无论怎么改,都不会出现该问题,删除user 表名后也一样,不知道怎么回事,可能是系统误报,多执行几次
问题:
批处理开头以go开始
解决:
加go 三个go
如下代码:
go SET showplan_all on go SELECT * FROM student go SET showplan_all OFF
原因:
我再前面使用了use educ 命令, 使 create procedure p1_存储过程 命令非第一句
解决:
1 删除 use educ 命令 2 在create 语句前面加: go
原因:
表中数据类型为char, 而这里编程设定的数据类型为int ,不匹配
解决:
设置表数据类型为 int
原因:
通常是因为在查询中使用了多个表,并且其中至少有一个表中存在重名的列
解决:
在列名前面加上表的别名,以明确指定是哪个表的列
在数据库DBMS中
外键表一般都为当前表,键为要设置的外键
主键表非当前表,键为另一个表中要设置的主键
这样更容易理解一点
—————————————————————
以上就是今日博客的全部内容了
创作不易,若对您有帮助,可否点赞、关注一二呢,感谢支持.