有时我在数据库设计中会遇到以下情况,我想知道处理这种情况的最佳实践是什么:
例如,我有一个特定的表,过了一会儿,当数据库正在运行并且一些实际数据已经输入时。我需要添加一些必需的字段(应该不接受空值)。
在这种情况下,最好的做法是什么。
使该字段接受空值作为(表中已输入的某些数据,并取消重要约束),并尝试通过代码中的某些验证强制用户输入该字段。
截短所有输入的数据并重新输入(繁琐的工作)。
关于这个问题的任何其他建议…

最佳答案

最好的方法是截短数据并再次输入,但不必太繁琐。临时表和表变量可以在很大程度上帮助解决这个问题。想到一个简单的步骤:
在SQL Server Management Studio中,右键单击要修改的表,然后选择Script Table AsCREATE ToNew Query Editor Window#
CREATE语句的表名前面添加一个INSERT INTO #temp SELECT * FROM original
将所有记录移动到临时表中,使用的效果如下:
Script Table As
然后运行脚本将所有记录保存到临时表中。
截断原始表,并进行任何必要的更改。
右键单击表并选择INSERT ToClipboardINSERT .. SELECT,将其粘贴到查询编辑器窗口中,并使用将其修改为从临时表中读取记录。
就这样。诚然不是很简单,但是一个保存良好的数据库几乎总是值得一点小小的麻烦。

10-04 19:45
查看更多