如果乙個表中有大量的資料庫,增加欄位或增加字段長度,經常會彈出以下錯誤"超時時間已到,無法修改表"
用以下方法可解決問題:
--增加字段
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...