我向 SQL Server Management Studio 表设计器中的现有表添加了一个新列。键入 INT,而不是 null。 没有设置默认值。
我生成了一个更改脚本并运行它,它出错并警告说新列不允许空值,并且没有设置默认值。它说“0行受影响”。
数据仍然存在,并且由于某种原因,我的新列在 SSMS 左侧数据库树的“列”文件夹中可见,即使它说“0 行受影响”并且无法更改数据库。
因为新列在列表中可见,所以我想我会继续更新所有行并在其中添加一个值。
UPDATE MyTable SET NewColumn = 0
繁荣..桌子擦干净。每一行都被删除。
这是一个大问题,因为它位于我不知道的没有备份的生产数据库上。但是..可以通过一些手动输入来恢复,所以不是世界末日。
任何人都知道这里可能发生了什么......也许内部发生的事情可能导致我的更新语句清除表中的每一行?