SQLServer修改資料列

來源:互聯網
上載者:User

標籤:完成   資料類型   t-sql   錯誤   rom   視窗   http   sqlserver   9.png   

修改資料列

在開發和生產過程中,列名的拼字錯誤或者列名的更改是需要操作資料表的,大多數情況下都是不需要修改的.

以下幾種情況下我們並不能直接修改資料列:

1、用於索引的列。 
2、用於 CHECK、FOREIGN KEY、UNIQUE 或 PRIMARY KEY 約束的列。 
3、與預設值(由 DEFAULT 關鍵字定義)相關聯的列,或綁定到預設對象的列。 
4、綁定到規則的列。 

使用SSMS資料庫管理工具修改列

1、串連資料庫,開啟要修改的資料庫,選擇資料表-》右鍵點擊-》選擇設計。

2、在新開啟的視窗視圖中-》點擊要修改的行-》可以修改列名、列類型、是否可空、屬性等-》修改完成點擊儲存按鈕(或者ctrl+s)。

使用T-SQL指令碼修改列修改列名

文法:exec sp_rename  表明.舊列名,新列名; 

樣本:exec sp_rename ‘[test1].height6‘,‘height7‘; 

修改列資料類型

文法:alter table 資料庫名.dbo.表名 alter column 列名 類型 [約束];  

樣本:alter table [testss].dbo.[test1] alter column height7 int null;  

修改列是否可空

文法:alter table 資料庫名.dbo.表名 alter column 列名 類型 約束;  

樣本:alter table [testss].dbo.[test1] alter column height7 int not null;

修改列預設值

如果預設值不存在

文法:alter table 資料庫名.dbo.表名 add constraint 約束名 default 預設值 for 列名;

樣本:alter table [testss].dbo.[test1] add constraint df_h default 1 for height7;

如果預設值存在

文法:

--第一步判斷預設值否存在,如果存在就刪除,如果不存在則不刪除
if exists (select * from sys.check_constraints where object_id = object_id(預設值約束名) and parent_object_id = object_id(表名))
alter table 表名 drop constraint 預設值約束名

--第二步添加預設值

alter table 表名 add constraint  約束名 default 預設值 for 列名;

樣本:

--第一步判斷約束是否存在,如果存在就刪除,如果不存在則不刪除
if exists (select * from sys.check_constraints where object_id = object_id(‘df_h‘) AND parent_object_id = object_id(‘[testss].dbo.[test1]‘))
alter table [testss].dbo.[test1] drop constraint df_h

--第二步添加預設值

alter table [testss].dbo.[test1] add constraint df_h default 2 for height7;

總結

在開發或者生產資料庫中,資料列一經建好,不要輕易改動,隨意改動可能會引起資料庫的級聯操作失敗和代碼錯誤。

 

SQLServer修改資料列

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.