-1
我有一个只有1个主列(nvarchar)的表,如在设计器中那样,它被标记为主键并且不允许空值。但以某种方式,该表中有一行的键值为空,当然不是空值,并且不会与主键列中的任何其他行重复,也不会发生冲突或违规行为。为什么主键列在SQLite中是空的?
但据我所知,SQL Server中的主列不允许这种类型的值(空)。我想知道是否有任何选项可以让它正常工作。或者我必须通过CHECK约束或C#代码中的权限(在更新之前)检查自己的值。
您的帮助将不胜感激。谢谢!
那么,使用代码测试不是我所做的,我使用Designer进行测试,它显示了一个错误对话框。如果是这样,它与SQL Server没有区别。但是,选项或设置如何? (在考虑检查约束或其他数据验证之前)。谢谢! – 2013-04-26 22:41:28
有一个选项会导致NULL在字符串连接操作中被当作空字符串处理,但对于表格没有任何相似之处。可能您正在使用的表编辑器在提交更新之前将空转换为空 - 这是工具行为,所以我不知道如何解决该问题。你可以用这个工具编写更新脚本,看看SQL究竟是什么。请记住所有这些工具通过发送普通的旧SQL到服务器上工作。如果你可以以某种方式拦截(就像分析器),那么你可以看到它在做什么。 – Jasmine 2013-04-26 22:47:45
哦顺便说一句 - 使用设计人员在学习SQL时会伤到你 - 你需要学习手写SQL代码。在那个时候,设计师变得或多或少没有用处,因为你的代码编写速度比你的鼠标快得多。 – Jasmine 2013-04-26 22:51:14