2008-09-25 147 views
3

我需要更改列的長度column_length(比如說超過500個表格),並且表格可能沒有記錄,範圍從10條記錄到3條或4百萬條記錄。更改列長度

1)列可能只是一個正常柱

create table test(column_length varchar(10)) 

2)列中可能包含在其上的非聚集索引。

create table test(column_length varchar(10)) 

CREATE UNIQUE NONCLUSTERED INDEX column_length_ind ON test (column_length) 

3)列中可能包含在其上

創建表測試PRIMARY KEY羣集索引(column_length VARCHAR(10))

ALTER TABLE測試上column_length添加主鍵聚集索引

4)該列可能是一個複合主鍵

5)該列可能有一個外鍵引用

簡而言之,column_length列可能是任何東西。

所有我需要的是創建腳本來改變從varchar(10)的column_length到varchar(50)

我應該刪除索引長度改變之前,然後重新創建它們? 主鍵和外鍵怎麼樣?

通過我的研究和測試,我想通了,...

我可以改變柱與出長度下降的主鍵或任何指標,但不得不輟學,獨自創建外鍵。

這是一個正確的假設嗎?我需要對此進行驗證。

回答

2

是的,你應該能夠修改列。根據我的經驗,離開索引和主鍵的速度會更快。

1

可能您需要在外鍵表上更改列以增加大小。因此,首先放棄fk約束,然後修正外鍵kkey字段,然後修復主鍵字段,然後重新放置約束。