1

我的表单中有一个主键列year

每当用户创建一个新表单时,他应该从下拉列表中填充此字段。

但是,如果用户犯了错误并且没有从下拉列表中选择任何内容,则会附加一个空字符串""。And when post operation is selected the record gets created in the database table.

我的问题:
当用户在做出选择后发布到数据库时:主键列最终接受空字符串""

这不应该抛出一个错误,因为主键字段不应该有一个空/空字符串吗?

我检查了表创建脚本,列设置为Not Null并且没有分配默认值。

我正在使用 SQL Server 2008。

4

1 回答 1

6

NULL和空字符串在 SQL Server 中与 Oracle 不同。PK 可以有一个空字符串。

当然,PK 必须是唯一的,因此只能有一个这样的空字符串,除非它是复合 PK 并且其他列具有不同的值。

您应该在插入尝试之前验证这一点,但可以添加一个检查约束作为最后一道防线。

于 2012-11-14T16:29:52.140 回答