茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1664790 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_00021.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [轉貼]防止儲存需要資料表重建的變更

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15766
[轉貼]防止儲存需要資料表重建的變更

sql 2008很鳥的設定-防止儲存需要資料表重建的變更

Sql server 2008相對於2005有些奇怪的預設規定

常會讓人摸不著頭緒

比如說我已經是系統管理者了,但為啥改個table的欄位也不行,目前發現一個狀況,我要改table的欄位

但會彈出下列視窗

第一次看到還真是令我傻眼,怎麼會這樣!,一開始還以為是database的設定有什麼地方要調,結果都不是

後來在google一陣後,找到解決方法

居然是在ssms的工具->選項中

在designers中要把”防止儲存需要資料表重建的變更”的勾選 取消 ,這樣就可以了

後來發現,原來如果這個選項是勾選的,且你的table中有資料的話,就會彈出

如果這個選項是勾選的,但你的table中是沒有任何資料的話,就可以修改..

以上資料提供給跟我遇到情況一樣的人


原文出處:sql 2008很鳥的設定-防止儲存需要資料表重建的變更 @ 信德隨想 :: 痞客邦 PIXNET ::
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15766
[轉貼]M$ 官方關於防止儲存需要資料表重建的變更解法
當您嘗試在 SQL Server 中儲存的資料表時,出現錯誤訊息: 「 儲存變更並不允許"

狀況
當您使用資料定義語言 (DDL) 來修改表格,接著嘗試在 Microsoft SQL Server 2008 中儲存資料表時,可能會收到下列訊息︰
不允許儲存變更。您所做的變更需要卸除並重新建立下列的資料表。您已進行至資料表,且無法重新建立或啟用 [防止儲存變更] 選項的變更需要重新建立資料表。

原因
啟用 [防止儲存需要重新建立資料表的變更] 選項時,和您對資料表的一或多個下列的變更時,就會發生這個問題︰
您變更資料行的 [允許 Null ] 設定。
您重新排序資料表的資料行。
您變更資料行資料型別。
您新增新的資料行。

當您變更資料表,讓您變更資料表的中繼資料結構,然後在您儲存資料表時,資料表必須重新建立根據這些變更。重新建立資料表時,這可能會造成在中繼資料的損失和直接資料遺失。如果您啟用SQL Server Management Studio (SSMS) 選項視窗的 [設計工具] 區段中的 [防止儲存需要重新建立資料表的變更] 選項時,您會收到 < 徵狀=""> 一節所述的錯誤訊息。

因應措施
若要解決這個問題,請使用考慮改用 SQL 陳述式,變更套用到資料表的中繼資料結構。如需詳細資訊,請參閱 SQL Server 線上叢書 》 中的下列主題︰
http://msdn.microsoft.com/en-us/library/ms190273.aspx
例如,若要變更在資料表中的型別 datetime 的MyDate資料行名接受 NULL 值,您可以使用 [我的表格︰
alter table MyTable alter column MyDate7 datetime NULL

重要我們強烈建議您不要不暫時解決這個問題藉由關閉防止儲存的變更,需要重新建立資料表] 選項。如需有關此選項為關閉的風險的詳細資訊,請參閱 < 其他資訊=""> 一節。

狀態
Microsoft 已確認這是 < 適用於=""> 一節所列出的 Microsoft 產品中的錯誤。

更多的資訊
若要變更 [防止儲存需要重新建立資料表的變更] 選項,請依照下列步驟執行︰

開啟 SQL Server Management Studio (SSMS)。
在 [工具] 功能表上按一下 [選項]。
在 [選項] 視窗的 [瀏覽] 窗格中,按一下 [設計工具]。
選取或清除防止儲存需要重新建立資料表的變更] 核取方塊,然後按一下[確定]。

注意如果您停用此選項,您會不警告您儲存資料表時,您所做的變更已變更資料表的中繼資料結構。在此情況下,您儲存資料表時,可能會發生資料遺失。
"防止儲存需要重新建立資料表的變更 」 選項為關閉的風險
雖然關閉這個選項可以協助您避免重新建立資料表,它也可能導致遺失的變更。例如,假設您啟用 [追蹤變更資料表的 SQL Server 2008年中的 [追蹤修訂] 功能。當您執行作業使重新建立資料表時,您會收到 < 徵狀=""> 一節所述的錯誤訊息。不過,如果您關閉此選項時,現有的變更追蹤資訊將會刪除重新建立資料表時。因此,我們建議您不要不暫時解決這個問題所關閉的選項。

如果要判斷資料表是否已啟用 [追蹤修訂] 功能,請依照下列步驟執行︰

在 [SQL Server Management Studio,找出在物件總管中的資料表。
資料表中,按一下滑鼠右鍵,然後按一下 [內容。
在 [表格內容] 對話方塊中,按一下 [追蹤修訂]。

如果變更追蹤的項目的值為True,此選項已啟用資料表中。如果值為False,則會停用此選項。

啟用變更追蹤的功能時,使用異動性 SQL 陳述式來變更資料表的中繼資料結構。
如果要重現問題的步驟

在 SQL Server Management Studio,建立包含 「 資料表設計工具 」 工具中的主索引鍵的資料表。
以滑鼠右鍵按一下包含此資料表的資料庫,然後按一下 [內容。
在 [資料庫屬性] 對話方塊中,按一下 [追蹤修訂]。
設定追蹤修訂的項目的值為True,,然後按一下[確定]。
資料表中,按一下滑鼠右鍵,然後按一下 [內容。
在 [表格內容] 對話方塊中,按一下 [追蹤修訂]。
設定追蹤修訂的項目的值為True,,然後按一下[確定]。
在 [工具] 功能表上按一下 [選項]。
在 [選項] 對話方塊中,按一下 [設計工具]。
按一下以選取 [防止儲存的變更,需要重新建立資料表] 核取方塊,然後按一下[確定]。
在 [資料表設計工具] 工具中,變更現有的資料行上的 [允許 Null ] 設定。
嘗試將變更儲存至資料表。

內容
文章識別碼:956176 - 最後檢閱時間:2017年2月26日 - 修訂: 1

這篇文章中的資訊適用於:
Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Enterprise Core

原文出處:M$ Support:當您嘗試在 SQL Server 中儲存的資料表時,出現錯誤訊息: 「 儲存變更並不允許"
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15766
[轉貼]不允許儲存變更

SQL Server 2008 不允許儲存變更

使用SQL SERVER 2008 當直接使用 SQL Server Management Studio修改Table 欄位格式或是其他DDL定義時,就會引發跳出下列錯誤訊息

不允許儲存變更。 您所做的變更會需要下列資料表卸除並重新建立。 您有做任何變更一個資料表,無法重新建立或啟用選項會防止儲存變更,需要重新建立資料表。

SQL 不允許變更Error Message  

這是因為SQL Server 2008預設不允許由圖形介面來變更資料表格式  ,下列行為就會引發上列訊息

1.變更資料行  允許 Null 設定。
2.重新排序資料表中的資料行。
3.變更資料行資料型別。
4.加入新的資料行。

SQL Server 2008會預設不允許由圖形介面來變更資料表格式,主要是因為怕手誤與大量的資料格式異動造成資料鎖定或資料遺失,這是重要的保護,但是卻造成麻煩

如果要取消此預設設定,可以依下列步驟:

開啟 SQL Server Management Studio-->工具-->選項-->Designers(設計師)-->資料表和資料庫設計工具-->防止儲存需要資料表重建的變更  


      -->取消勾選 即可!如下圖:

預設不允許直接變更資料表
  

但是MSDN上有附註說明停用這選項造成的影響如果您停用這個選項,會不警告您儲存資料表時,已變更資料表的中繼資料結構。在這種情況下儲存資料表時,可能會發生資料遺失。

所以如果可以還是建議以T-SQL命令,去變更資料表。


原文出處:SQL Server 2008 不允許儲存變更 @ 月神的咖啡館 :: 痞客邦 PIXNET ::
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|