新聞中心
我們討論的這個(gè)警告信息顯示如下,當(dāng)我試著更改AdventureWorks數(shù)據(jù)庫 表[GroupName]字段的"Allow Nulls"設(shè)置時(shí),下面的警告產(chǎn)生了。

不允許保存更改。你所作的這些更改要求刪除并且重新創(chuàng)建下面的表。你只能對(duì)表進(jìn)行不能重新創(chuàng)建的更改或者啟用這個(gè)選項(xiàng)來防止保存要求對(duì)表重新創(chuàng)建的更改。
圖一
我具有在這張表上執(zhí)行DDL語句的權(quán)限,而在這張表上也沒有阻止它重新創(chuàng)建的鎖。因此唯一的原因應(yīng)該是"or enabled the option Prevent Saving changes that require the table to be re-created"的信息部分。
因此讓我們看看這個(gè)選項(xiàng),接著看看一些要求重新創(chuàng)建表并且與通過SSMS進(jìn)行更改有關(guān)的潛在威脅類型。
從菜單中選擇“工具”然后選擇“選項(xiàng)…”
圖二
點(diǎn)擊頁面左邊的"Designers"
圖三
上面的標(biāo)記選項(xiàng)在檢查時(shí)防止在SSIS中要求重新創(chuàng)建表的任何更改。默認(rèn)情況下,這個(gè)選項(xiàng)是檢查的。如果它允許你通過要求對(duì)表重新建立的SSMS來做任何改變,那么你可以不檢查它。一旦這個(gè)選項(xiàng)設(shè)為未檢查的,那么你講不能得到一個(gè)要求表重新創(chuàng)建的更改以及執(zhí)行你的更改的警告信息。
要求重新創(chuàng)建表的一些情況是:
修改一個(gè)字段的數(shù)據(jù)類型
在一張表的***一個(gè)字段之前在任何一個(gè)地方插入一個(gè)字段
修改一個(gè)計(jì)算列的計(jì)算列表達(dá)式
修改一個(gè)計(jì)算列的persistence屬性
修改一個(gè)字段的identity屬性
修改一個(gè)字段的NULL屬性
對(duì)表中的字段重新排序
重要的是要了解通過SSMS進(jìn)行更該會(huì)帶來一些后果。微軟強(qiáng)烈建議不要關(guān)閉這個(gè)選項(xiàng)。你可能會(huì)經(jīng)歷與該表相關(guān)的信息缺失甚至在某些情況下會(huì)缺失數(shù)據(jù)。作為信息相關(guān)缺失的例子,微軟支持提出如果更改跟蹤功能可用的話,那么可以使用與表相關(guān)的更改跟蹤。如果這張表也包含大量的數(shù)據(jù),那么重新創(chuàng)建表可能會(huì)導(dǎo)致超出操作時(shí)間從而無法完成該過程。
同時(shí)考慮到微軟的建議,您***啟用這個(gè)選項(xiàng)。但是在某些情況下,禁用這個(gè)選項(xiàng)會(huì)使你更好地利用SSMS設(shè)計(jì)器進(jìn)行工作。這些情況是:你在測(cè)試環(huán)境中工作。
要求進(jìn)行一些不能通過T-SQL的操作。例如,在其它字段的中間插入一個(gè)新的字段。在這樣的案例中,正確分析這些表的任何問題/損失作為重新創(chuàng)建表的結(jié)果。
你確定沒有相關(guān)的數(shù)據(jù),例如與你任何一張表有關(guān)的更改跟蹤數(shù)據(jù)。
你確定硬件具有足夠的空間來避免任何超時(shí)的操作。
【編輯推薦】
- 在T-SQL中使用臨時(shí)表的注意事項(xiàng)
- SQL Server數(shù)據(jù)庫管理常用的SQL和T-SQL語句(1)
- 用T-SQL操作面試SQL Server開發(fā)人員(1)
- SQL Server 2005中的T-SQL
- T-SQL實(shí)用例句
分享文章:SQLServer2008重新創(chuàng)建表的方法
文章分享:http://m.fisionsoft.com.cn/article/djdeopc.html


咨詢
建站咨詢
