龙空技术网

SQL语句提交违法数据库约束的错误

dotNet工控上位机 240

前言:

现在兄弟们对“sql server删除约束语句”大约比较重视,小伙伴们都需要剖析一些“sql server删除约束语句”的相关知识。那么小编同时在网上搜集了一些关于“sql server删除约束语句””的相关知识,希望姐妹们能喜欢,姐妹们一起来了解一下吧!

最近小伙伴学习数据库真的是掉头发啊,错误一堆堆,总也解决不完,其实对于我们老鸟来说,如果认真总结一下,会发现错误就那么几种,掌握了你就是数据库老鸟,来吧一起看看都有啥。

《C#程序》的错误提示:

《SQLServer数据库的错误》

【问题分析】:以上两种错误都是同一个原因,就是sql语句中“字段的个数”和实际“字段 值”(values里面的)不一样导致的,解决方法就是仔细检查,有多少个字段,然后看给的对应值的个数是不是也是一样的,以上错误就是values后面的字段值,对应最后一个字段DepartmentId缺少了值,添加上即可。

【解决方法】:

《C#程序》的错误提示:

《SQLServer数据库的错误》

【问题分析】:以上两种相同错误“插入重复键”,就是因为在数据表中,某些字段添加了“唯一约束”,这种问题,可以自己打开数据表,肯定有这种情况,比如上面的表中,身份证号就是唯一约束,但是我们从数据库中,查看数据表Employee发现,这个身份证号(120223199001091218)已经存在了,所以报错。

【解决方法】:改换成不同的身份号就行了。

《C#程序》的错误提示:

《SQLServer数据库的错误》

【问题分析】:以上两种相同的错误,是因为我们给的values中,有的字段值超过了字段定义的长度,这时候,需要去数据库中看一下具体的每个字段的长度,然后对比SQL语句中给的值,当然如果有很多字段,也不是每一个都对比,一般就是看看“字符串类型的字段”就可以了,经过查看,在Gender字段中,我们设置的是char(2)两个字符长度,而我们给的值是“男1”,也就是3个字符,所以超出长度,报错。

【问题解决】:只需要改成“男”就可以了。

《C#程序》的错误提示:

《SQLServer数据库的错误》

【问题分析】:凡是提示“CHECK约束冲突”的,一定要检查当前表中哪些字段添加了CHECK约束,然后根据约束要求,去核对values中的字段值,比如我们这个表中Gender性别列增加了如下约束:

右键点击表名称,选择“设计”,然后在表的设计状态下,任何地方再次右键,选择CHECK约束:

弹窗如下窗口:

发现,Gender的约束是“男”或“女”,而在上面的SQL语句中,我们写了“非”,所以报错。类似的问题,比如你给某一个字段设置成30-50范围的值,而你的数据不在这个范围,同样也是这个错误。

【问题解决】:只需要把values中的“非”改成“男”就可以了。

《C#程序》的错误提示:

《SQLServer数据库的错误》

【问题分析】:以上两个错误是一样的,非常明确的提示了是“Foreign key”约束,并且告诉了是表“Department”,对应的字段是“DepartmentId”。这样的话,我们就去核对一下,当前SQL语句中最后一个字段19对应的是DepartmentId,所以,我们去Department表中,看看所有的DepartmentId列中,有没有这个19,打开数据表如下:

发现确实没有19,这样的话主键表里面没有的数据,从表中是不能使用的,这个也是外键约束的基本要求。

【问题解决】:只要把19改成,数据表中10-15中的值就可以了。

【特别提示】:只要是“约束冲突”,检查的方法都一样,看清楚错误提示的是什么类型的约束,然后去表中查看,仔细核对即可。

以上问题,只要用数据库,其实不管是老鸟还是新手,都会遇到,而在这里如何快速解决才是我们今天这篇文章的关键。

标签: #sql server删除约束语句 #数据库违反唯一约束条件