2014年11月27日 星期四

MSSQL 修改欄位名稱和資料型態


若要更改某個table內的某一個欄位的型態

For example:
A1 varchar(10)  ---->  A1 varchar(20)
A2 tinyint   ----->   B2 int
第一個只改變欄位的長度或是型態
第二個改變名稱或是改變名稱與型態

解法如下:
以下說明,以 SQL Server 2008 為主:
關於第一個問題,可以使用 ALTER TABLE 陳述式:
CREATE TABLE 我的資料表 (欄位A varchar(10));
GO
ALTER TABLE 我的資料表 ALTER COLUMN 欄位A nvarchar(25) NOT NULL;
GO
ALTER TABLE 我的資料表 ALTER COLUMN 欄位A varchar(50) NULL;
GO

若僅是更改欄位名稱,請使用 sp_rename 這個預存程序,如下所示即是一例:
EXEC sp_rename '我的資料表.欄位A', '新欄位', 'COLUMN';
GO

若要更改欄位名稱與型態,就需要分成兩道指令來進行,比方說:先使用一道指令來更改欄位名稱,然後再使用第二道指令來更改欄位型態

For example:
EXEC sp_rename '我的資料表.欄位A', '新欄位', 'COLUMN';
ALTER TABLE 我的資料表 ALTER COLUMN 新欄位 nvarchar(50) NULL;
GO
刪除這個資料表:
DROP TABLE 我的資料表;
GO