ycvodzf 发表于 2015-7-2 10:45:38

SQL SERVER 修改欄位(列)屬性或是名稱

  某個table內的某一個欄位的型態要如何使用語法完成呢
  比方說
  A1 varchar(10)---->A1 varchar(20)
  A2 tinyint   ----->   B2 int
  第一個只改變欄位的長度或是型態
  第二個改變名稱或是改變名稱與型態
  做法如下:   
以下說明,以 SQL Server 2005 為主:
  關於第一個問題,可以使用 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
  若要更改欄位名稱與型態,就需要分成兩道指令來進行,比方說:先使用一道指令來更改欄位名稱,然後再使用第二道指令來更改欄位型態,如下所示即是一例:
  EXEC sp_rename '我的資料表.欄位A', '新欄位', 'COLUMN';   
ALTER TABLE 我的資料表 ALTER COLUMN 新欄位 nvarchar(50) NULL;   
GO
  刪除這個資料表:
  DROP TABLE 我的資料表;   
GO
  請注意:
  當您所欲更改欄位長度或資料型別的資料表有條件約束時,SQL Server 並不會自動幫您修改這些條件約束,此時,請先移除條件約束,待更改欄位長度或資料型別之後,再建立這些條件約束,以免於執行操作時,發生錯誤訊息。   
重新命名欄位的物件,不會自動重新命名與這個物件相關的參考物件名稱。您必須手動修改任何參考重新命名之物件的物件。比方說,您重新命名某一個欄位,且有觸發程序參考這個欄位,您必須修改觸發程序來反映新的欄位名稱。在重新命名欄位之前,您可以使用 sys.sql_dependencies 來列出其相依性。
页: [1]
查看完整版本: SQL SERVER 修改欄位(列)屬性或是名稱