为什么在添加/移动列时会收到表需要删除并重新创建的消息? 我相信在添加外键约束后会发生这种情况。
如何在不删除表的情况下添加新列?
答案 0 :(得分:24)
如果您对简单地让SSMS停止唠叨更感兴趣,可以在选项 - >设计师 - >表格和数据库设计器中取消选中“防止保存需要重新创建表格的更改”设置。这些表格仍然会被删除并重新创建,但至少SSMS不会对你有太大的影响。
(这假设你是在开发/测试环境或生产环境中工作,在这种情况下,表格存在的短暂失效不会搞砸任何东西)
答案 1 :(得分:9)
答案 2 :(得分:1)
SQL Server(以及任何其他RDBMS,实际上)没有任何“列顺序”的概念 - 例如如果你移动列,实现新表结构的唯一方法是发出一个新的CREATE TABLE
语句。你不能以任何其他方式命令你的列 - 你也不应该,因为在关系理论中,元组中列的顺序是无关紧要的。
因此,SQL Server Management Studio可以做的唯一事情(并且一直在做)是:
解决这个问题的唯一方法是:
ALTER TABLE
SQL语句代替交互式表设计器进行工作答案 3 :(得分:0)
当您在设计器中编辑表定义时,您说“这就是我希望表格看起来的样子,现在可以找出要发出的SQL语句以实现我的愿望”。这适用于简单的更改,但软件无法读懂您的想法,有时它会尝试以更复杂的方式执行安全操作。
当发生这种情况时,我建议不要单击“确定”,而是单击对话框顶部的“脚本”按钮,然后让它在查询窗口中生成SQL语句。然后,您可以在执行之前编辑和简化生成的代码。
答案 4 :(得分:0)
SSMS 2008 R2(及更早版本)中存在有用的信息:
更新:
在20年代开发的桌面产品中看到这一点很奇怪而且很烦人,而这种(自动清新)是由任何浏览器中的大多数Web应用程序完成的