作者flakchen (flak)
看板Database
標題Re: [SQL ] SQL2005有大量資料 想改變欄位形態
時間Sat Jun 14 10:35:45 2008
因為你已經用a+b設了一個Index,沒記錯的話應該要先卸掉
再用SQL 的Management Studio按「新增查詢」下這個指令
ALTER TABLE tablename ALTER COLUMN a char(60)
注意:
1.你能在管理介面編輯,應該有足夠權限下這個指令
2.用指令下一樣會跑很久,只是不會Timeout而已
3.因為資料太多,這會鎖定那個資料表非常久,如果這是一個上線資料庫的話,
小心你的db admin可能在你後面,而且他非常火
4.這個動作通常也會造成交易記錄檔暴增,所以請注意記錄檔所在硬碟空間是否
足夠,如果不夠的話,可能會塞爆硬碟,造成整個資料庫都不能運作,小心你的
db admin可能會在你後面,而且他非常火
5.做完之後記得把Index加回來
6.最好先建一個小資料庫自己測試整個Scenario
7.我不需要P幣,請其他需要的人繼續補充
※ 引述《rosemary (迷迭香)》之銘言:
: 大家好
: 想請教大家一個問題
: 資料庫是SQL Server 2005
: 一個table 有很多欄位有設index
: 其中有欄位a(char(30))+b(char(30))有設一組index
: 目前該table有3000萬筆左右資料
: 因為一些需求,需要將a欄位改為char(60)
: 但是每次用管理界面改好按存檔
: 就會說錯誤
: "已超過連接逾時的設定,在作業完成之前超過逾時等待的時間
: ,或是伺服器未回應"
: 不知道有什麼方法可以達成我的目的?
: 感謝
: p.s我只有該db的管理權限
: 但是沒有db admin的權限
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.120.15.44
推 iFEELing:推 "你的DBA在你後面,而且他非常火" 06/14 10:43
※ 編輯: flakchen 來自: 122.120.15.44 (06/14 10:57)
推 rosemary:XDDD謝謝您幽默風趣的回答 等測試之後再回報 感謝 ^^ 06/14 13:07