已有大量資料的表加字段的方法

2021-06-01 20:19:32 字數 1487 閱讀 1584

如果乙個表中有大量的資料庫,增加欄位或增加字段長度,經常會彈出以下錯誤"超時時間已到,無法修改表"

用以下方法可解決問題:

--增加字段

alter   table   表名   add     字段   字段型別

例如: 

use ase_order

alter table dbo.t_orderbase add remaronlycompany  varchar(max)

--增加字段長度

alter table t_case alter column ca_category  char(3) null

以下有更詳細的方法:

如果資料量非常大,達到幾百萬條記錄以上,使用企業管理器來更改字段型別,很多時候會超時,更改不成功,這時可以使用sql語句來更改,如下:

--更改字段型別長度

alter table 表 

alter column 欄位名 型別的長度--varchar(60)

例:把城市表的城市名字段有原來的長度20改為30

alter table testcity 

alter column cityname varchar(30)

--更改字段型別

alter table 表 

alter column 欄位名 更改後的型別

例:把城市表的城市名字段有原來的varchar型別改為int型別

alter table testcity 

alter column cityname int

--新增not null約束 

alter table 表 alter column 欄位名 int not null 

例:把cid不能輸入空值

alter table testcity alter column cid int not null 

--設定主鍵 

alter table 表 add constraint 主鍵名 primary key(欄位名)

例:把cid設為主鍵

alter table testcity add constraint pk_cid primary key(cid)

--更改欄位名

exec sp_rename '表名.欄位名','更改後的欄位名','column'

--新增欄位名

alter table 表 add 欄位名 字段型別 default null

如何 新增乙個預設值是0的int 型字段 欄位名是 column1, 資料表是 table1:

alter table table1 add column1 int not null default (0)
如果字段已經存在 新建預設值 alter table [表名] add constraint 預設值名 default '51windows.net' for [欄位名] 刪除預設值 alter table [表名] drop constraint 預設值名

MyISAM表加字段的特殊方法

最近乙個統計系統的大表需要加欄位,表的引擎是myisam,表大小在3億,物理檔案在106g。想想都蛋疼。那麼這種情況下怎麼把字段擼上去呢?1.首先想到了 高效能mysql 提到的直接更改表結構檔案 frm 但是在經過測試以後,發現提示表損壞了,需要repair,只好放棄了。2.使用pt online...

mysql給表的字段加索引

1 新增普通索引 alter table table name add index index name column 2 新增主鍵索引 alter table table name addprimary key column 3 新增唯一索引 unique alter table table na...

Oracle中在已有資料的表中更改字段型別(四步)

data型轉換成varchar型 第一步 alter table feesdetails info rename column prescription date to prescription date1 備註 把原欄位換個名字,此條的sql是把prescription date 換成prescr...