爲什麼SQL 2008突然想要在我將列類型從say int更改爲real時丟棄我的表?就我所知,這在SQL 2005中從未發生過。任何見解都會有幫助。如何更改列而不刪除SQL 2008中的表
回答
在SQL Server 2008中,轉至工具>>選項。在小窗口中,點擊「設計師」。取消選中「阻止保存需要改變......」
=====
編輯在9月4日,2015年
我已經很長,很久以前這裏加入這個答案描述我將如何解決上述問題中描述的情況。從那時起,以下線程中的用戶就按照我當時推薦的方式提出了一些關於處理事務的問題。基本上,我描述的解決方案在某些情況下可能會有問題。然後,我建議您繼續閱讀以檢查其他用戶的評論併爲您選擇最佳解決方案。
我已經找到答案,但感謝您的幫助。 – Middletone 2009-01-20 06:36:54
但它會丟掉桌子!這不是一個超大型表格的功能方式 – 2013-08-21 11:19:46
我不敢相信頂尖的答案一直在這裏坐這麼久 - 這是非常危險的建議!
有幾個操作就可以就地做到不放棄你的表:
- 展開VARCHAR列https://dba.stackexchange.com/questions/5211/changing-column-width
- 使列可空(但不是反之亦然)
- 使用sp_rename重命名列
如果您發現自己處於無法刪除表的情況下更改列的情況,您通常可以使用SELECT INTO
查詢將您的數據投影到新表中,然後刪除舊錶(暫時禁用約束),然後重命名投影表。但是,在這種情況下,您需要將數據庫脫機進行維護。
我有同樣的問題。雖然我的帳戶有權利,如果我嘗試使用另一個sa帳戶它的作品。看來,我的賬戶不知怎麼改變了。仍在調查,但這是一個許可問題。
更新:
我無法展開它。但這就是我所做的。我的帳戶屬於兩個域組。一個是新的AD域組,另一個是NT域名組。一旦我刪除了舊域組,我就可以成功修改表。請注意,這兩個團體都有「特權」。
行爲是更改命令會導致成功,但沒有更改表上。然後,當我手動嘗試通過設計器更改字段時,它抱怨說,如果需要刪除並重新創建表格,我不允許進行更改。我發現了工具中的設置,我可以關閉它。但是這張桌子很大,不是一個好主意。我會告訴別人反對它。
所以這是一個權限問題。我無法解釋怎麼樣,但是我希望它可以幫助別人
這裏是我使用:
-- Add new column
ALTER TABLE MyTable
ADD Description2 VARCHAR(MAX)
GO
-- Copy data to new column (probably with modifications)
Update MyTable
SET Description2 = Description
GO
-- Drop old column
ALTER TABLE MyTable
DROP COLUMN Description
GO
-- Rename new column to the original column's name.
sp_RENAME 'MyTable.Description2' , 'Description', 'COLUMN'
GO
- 將數據複製到一個新列。
- 丟棄舊列。
- 將新列重命名爲舊列的名稱。
另一種方式來這不完全刪除表是
- 將列值的備份。
如果列尚未允許空值,可將列設爲空。設置列值由 爲空做
update tablename set columnname = null
- 刪除列
- 插入使用相同的名稱與已刪除列,要
- 插入保存數據到這個類型的新列列
- 1. 如何刪除SQL中的行而不刪除整個表
- 2. 更改SQL Server 2008中的列名稱
- 3. 如何從perforce中的更改列表中刪除文件而不會丟失修改?
- 4. 如何刪除Perforce中的幻像更改列表
- 5. 如何清除ListBox中的值而不刪除WPF中的列表項
- 6. 如何在點擊刪除按鈕上更改表格行顏色,而不是刪除iOS中的一行
- 7. 刪除Reccords - SQL Server 2008的
- 8. 從表問題(SQL Server 2008中)刪除列
- 9. 更新而不是刪除
- 10. MAC OS Perforce刪除更改列表
- 11. 更改表刪除列失敗
- 12. 更改SQL Server 2008中表列的數據類型
- 13. 刪除註冊表中如果有一列在SQL Server中的NULL值2008
- 14. 創建新表時如何更改SQL Server 2008中的默認列定義?
- 15. 更改列表的副本而不更改Lisp中的原始列表
- 16. 如何從列表中刪除,同時修改列表
- 17. 如何刪除參數因組而異,而不循環? (T-SQL)
- 18. 如何刪除列表迭代,而不ConcurrentModificationException的
- 19. 如何刪除行而不刪除其_ID列值?
- 20. 如何從表中刪除行而不從參考表中刪除一行?
- 21. 更新而不是刪除
- 22. SQL Server 2008:我如何部署更改?
- 23. 手動刪除sql server 2008
- 24. SQL Server 2008刪除級聯
- 25. 如何從sql server 2008中的XML變量中刪除屬性?
- 26. 刪除Joomla 1.5中的元描述而不更改內核
- 27. 如何刪除表中的行sql
- 28. 如何刪除元組中的字母而不更改爲字符串
- 29. SQL Server 2008 - 如何自動刪除和創建和輸出表?
- 30. 在sql server 2008 r2中,連接兩列而不創建表
在SF這個答案回答得當 [http://stackoverflow.com/a/11035353/1711106][1] [1]:http://stackoverflow.com/a/11035353/1711106 – 2013-12-12 09:12:00