SQL Server Management Studio - 添加/移动列需要删除并重新创建?

tvr*_*tvr 18 sql-server sql-server-2005 sql-server-express sql-server-2008

为什么我在添加/移动列时会收到表需要删除并重新创建的消息?我相信在添加外键约束后会发生这种情况.

如何在不丢弃表的情况下添加新列?

Joh*_*ose 26

如果您对简单地让SSMS停止唠叨感兴趣,可以在选项 - >设计器 - >表和数据库设计器中取消选中"防止保存需要重新创建表的更改"设置.这些表格仍然会被删除并重新创建,但至少SSMS不会对你有太大的影响.

(这假设您在开发/测试环境或生产环境中工作,表中存在的短暂失效不会导致任何问题)

  • 很高兴听见!顺便说一下,SSMS还会将您的数据移动到新表中.我从来没有经历过数据丢失或者有任何其他问题这样做.虽然我总是首先做备份! (2认同)
  • 这是一个非常危险的建议!切勿取消选中此字段,否则您可能会意外丢失有关结构更改的所有数据。忘记 UI 并使用 TSQL 来更改您的表,如其他答案之一中所述。 (2认同)

Mit*_*eat 10

因为SQL Server Management Studio就是这样做的(有时候)!

改为使用TSQL的ALTER TABLE:

ALTER TABLE
    ADD myCol int NOT NULL
Run Code Online (Sandbox Code Playgroud)

  • 订单确实很重要,如果你喜欢有条理,如果你离开一个项目2年并回来做出改变,那么能够以有组织的方式看待事情并不是一件好事吗? (4认同)
  • 谢谢你的链接.是的,我很痴迷你应该看到这个http://www.answers.com/topic/cleanliness-is-next-to-godliness :) (2认同)