2010-02-17 83 views
3

對於Microsoft SQL Server 2008來說,更改現有列以允許更多字符的命令是什麼?如果我只是擴展它,這會對列中的任何以前的條目產生影響嗎?將表格列更改爲接受更多字符

我有一個URL列,我需要添加約100個字符。

回答

9
ALTER TABLE [table] ALTER COLUMN [column] NVARCHAR(newsize) 

並且增加大小不會影響您的數據。

+3

您應該指定NULL或NOT NULL,以確保可空性不會同時更改。 –

2
ALTER TABLE myTable ALTER COLUMN myColumn varchar(100) 
GO 

這不會涉及丟失數據的風險,因爲您正在擴大列的大小。

1
ALTER TABLE tab ALTER COLUMN c VARCHAR(200) 
0

您可以使用SQL Server Management Studio自行生成代碼。只需修改設計器中的表格,使列更寬,然後單擊「生成更改腳本」(在「表設計器」菜單下)。

根據您所做的更改,修改表的代碼可能相當複雜。

+0

這並不總是最好的方法。如果由於某種原因導致更新失敗,它通常會破壞你的所有外鍵。另外,如果您有FILESTREAM字段,它將刪除文件流關聯。一般來說,設計師是您想嘗試用來修改表格的最後一個地方。 – NotMe

+0

順便說一句,原因是設計師首先刪除所有外鍵引用,然後刪除舊錶,然後在其位置創建一個新表,然後將數據放回,最後添加外鍵引用。如果失敗,它不會回滾整個事務。就文件流而言,設計者根本不知道任何關於它的事情。因此,當它重新創建表格時,它會將該部分留出。 – NotMe

+1

我發現設計師是學習如何編寫DDL腳本的好方法。後來,我發現設計者是學習如何*不*寫DDL腳本的好方法。 –

相關問題