CF_*_*ger 248 sql-server database-design sql-server-2005 sql-server-2008
前言
我今天在SQL Server 2008中修改了一个列,将数据类型从货币(18,0)更改为(19,2).
我收到错误"您所做的更改需要从SQL Server中删除并重新创建以下表".
在您争相回答之前,请阅读以下内容:
我已经知道工具►选项►设计器►表和数据库设计器中有选项►取消选中 "禁止保存需要重新创建表的更改" 框.
......所以不要回答!
实际问题
我的实际问题是针对其他事情,如下:
这样做有任何负面影响/可能的缺点吗?
当取消选中此框时,表是否会被实际删除并自动重新创建?
如果是这样,表格是否复制了源表的100%完全复制品?
Ant*_*eim 249
工具 - >选项 - >设计器节点 - >取消选中"防止保存需要进行表重新创建的更改".
Aar*_*and 88
只有在SQL Server的Management Studio被编程为知道如何操作的唯一方法的情况下,才会删除并重新创建该表.
当然,有些情况下它会在不需要的情况下执行此操作,但也会出现在Management Studio中进行的编辑不会丢失和重新创建的情况,因为它不需要.
问题在于列举所有案例并确定它们落在哪一行上将是相当繁琐的.
这就是为什么我喜欢ALTER TABLE在查询窗口中使用,而不是隐藏他们正在做的事情的视觉设计师(并且坦率地说有错误) - 我确切地知道会发生什么,并且我可以准备唯一可能的情况是删除并重新创建表(这比SSMS对你这样做的频率要少一些).
小智 11
只有在以下情况下,SQL Server才会删除并重新创建表:
使用ALTER更安全,因为在重新创建表时元数据丢失的情况下,您的数据将会丢失.
| 归档时间: |
|
| 查看次数: |
175729 次 |
| 最近记录: |