2012-03-26 85 views
37

我創建了一個表tbl_Candidate ...但我忘了設置主鍵的表,我救它沒有主鍵...無法更改表的設計在SQL Server 2008

下一次我我要在SQL Server 2008 Express中設置主鍵,我得到一條消息,如我必須刪除表並重新創建時,我要保存主鍵更改表...

這是消息當我試圖在表格中保存更改時彈出... !!

保存更改是不允許的。您所做的更改要求 要刪除並重新創建以下表格。你要麼做 變化表無法重建或啓用 禁止保存需要的表是更改的選項重新

我登錄到SQL Server和Windows身份驗證,服務器類型數據庫引擎和服務器名稱爲.\SQLExpress

請給我一個方法來解決此問題或方式來更改SQL Server的設置......請給我一個方向..謝謝..

回答

78

答案是對MSDN site

「保存(不允許)」對話框警告不允許保存更改 ,因爲您所做的更改要求刪除並重新創建列出的 表。

下列操作可能會需要一個表來重新創建:

  • 添加新列到表
  • 中間刪除列
  • 更改列的爲空
  • 更改列順序
  • 更改列的數據類型

編輯1:

其它有用的here信息:

要更改需要表 重新創建選項防止保存更改,請按照下列步驟操作:

  1. 打開SQL Server Management Studio(SSMS)。
  2. 在工具菜單上,單擊選項。
  3. 在選項窗口的導航窗格中,單擊設計師。
  4. 選中或清除「禁止保存需要重新創建表的更改」複選框,然後單擊「確定」。

注意如果禁用此選項,當您保存表,你所做的更改已經更改了表的元數據 結構,你不警告。在這種情況下,當您保存表格時,可能會發生數據丟失。關閉「阻止保存需要表重新創建的更改」選項

雖然關閉該選項可以幫助您避免重新創建一個 表

風險,這也可能導致的變化是丟失。例如,假設您啓用SQL Server 2008中的更改跟蹤功能 到 跟蹤對該表的更改。當您執行的操作導致 表被重新創建時,您會收到「症狀」一節中提到的 錯誤消息。但是,如果關閉此選項,則重新創建 表時將刪除現有更改跟蹤信息。因此,我們建議您通過關閉該選項來避免在此問題上使用 。

Settings, screen shot

+1

謝謝你..先生...... – tharindlaksh 2012-03-26 11:11:20

+0

謝謝你太多的答案! – 2013-04-08 08:03:59

+0

謝謝先生@pylover – 2016-12-28 02:08:25

6

您可以直接添加約束的表

ALTER TABLE TableName 
ADD CONSTRAINT ConstraintName PRIMARY KEY(ColumnName) 
GO 

確保您的主鍵列不應該有任何空值。

選項2:

你可以改變你的SQL Management Studio中選擇喜歡

要改變這個選項,在工具菜單上,單擊選項,展開 設計師,然後單擊表格和數據庫設計人員。選擇或 清除「保存需要重新創建表的 」更改複選框。

+0

謝謝你..先生...... – tharindlaksh 2012-03-26 11:15:35

1

禁止保存需要表重新創建

五迅速點擊

Prevent saving changes that require table re-creation in five clicks

  1. 工具的變化
  2. 需要表重新創建
  3. OK 個選項
  4. 設計師
  5. 防止保存更改。

保存後,重複該過程以重新勾選該框。這安全 - 防止意外數據丟失。

進一步解釋

  • 默認情況下,SQL Server Management Studio中防止表的下降,因爲當一個表被刪除其數據內容丟失。*

  • 當改變一個列在表設計視圖中的數據類型,保存更改時,數據庫中刪除表內,然後重新創建一個新的。

*您的具體情況不會造成後果,因爲您的表是空的。我完全提供這個解釋來提高你對程序的理解。