【发布时间】:2012-11-14 16:28:51
【问题描述】:
我的表单中有一个主键列year。
每当用户创建新表单时,他都应从下拉列表中填充此字段。
但是如果用户犯了错误并且没有从下拉列表中选择任何内容,则会附加一个空字符串""。选择后,选择后操作时,在数据库表中创建记录。
我的问题:
当用户在做出选择后发布到数据库时:主键列最终接受空字符串""
这不应该抛出一个错误,因为主键字段不应该有一个空/空字符串吗?
我检查了表创建脚本,列设置为Not Null,没有分配默认值。
我使用的是 SQL Server 2008。
【问题讨论】:
-
尝试在表单到达数据库之前对其进行验证,或者您可以设置触发器或检查约束以禁止空字符串。
-
您需要小心使用您的术语:
NULL和 空字符串 不相同。一个空字符串""应该 not 被称为 null 字符串 - 这只是要求混淆和麻烦..... -
@marc_s 除非您使用的是 Oracle,否则它们是相同的。
-
year的数据类型到底是什么?我希望它是某种类型的整数而不是字符串。 -
@NullUserException:OP 明确提到他正在使用 SQL Server - 这就是我所指的目标产品。
标签: sql sql-server sql-server-2008 null primary-key