alter table 只允許新增可包含空值或指定了 default 定義的列。
如果:if exists(select 1 from sysobjects where name = n'tab_test') and not exists(select 1 from sysobjects a, syscolumns b where b.id = a.id and b.name = n'col_test' and a.name = n'tab_test')
alter table tab_test
add col_test smallint not null
go將會收到錯誤資訊。
要增加非空列怎麼辦呢?
第1種辦法:在add column時指定列有default
alter table tab_test
add col_test not null constraint dftab_test_col_test default 1
第2種辦法:先給表增加個table_constraint default,再alter column
alter table tab_test
add constraint dftab_test_col_test default 1 for col_testalter table tab_test
alter column col_test int not null
第3種辦法:只好先增加空列,在修改為非空啦:
if exists(select 1 from sysobjects where name = n'tab_test') and not exists(select 1 from sysobjects a, syscolumns b where b.id = a.id and b.name = n'col_test' and a.name = n'tab_test')
alter table tab_test
add col_test smallint
goalter table tab_test
alter column col_test smallint not null
go語法如下:
alter table table_namealter column column_name
)][null|not null]
| add
[ ,...n ]
| drop
] }< column_definition > ::=
[ [ default constant_expression ]
| identity [ ( seed , increment ) ]
] [rowguidcol]
[ < column_constraint > ] [ ...n ] ]
< column_constraint > ::=
[ null | not null ]
[ constraint constraint_name ]
| references ref_table [ (ref_column) ]
[ on delete ]
[ on update ]
}< table_constraint > ::=
[ constraint constraint_name ]
| foreign key
( column [ ,...n ] )
references ref_table [ (ref_column [ ,...n ] ) ]
[ on delete ]
[ on update ]
}
改int非空自增列為int可為空列
declare tablename nvarchar 250 宣告讀取資料庫所有資料表名稱游標mycursor1 declare mycursor1 cursor forselect name from dbo.sysobjects where objectproperty id,isusertab...
SQL Server 如何設定某列自增
對於已經建好的資料庫表,可以採用兩種方法來修改 若還有疑問可以看看最後的備註 1 通過sql server management studio修改 我使用的是2012版的 選擇資料庫表右鍵 設計表 點一下你要修改的列 在下方看到列屬性 將標識規範點開 在 是標識 那選擇是就改好了 完成以後如下所示 ...
jeesite實戰 三 設定實體屬性非空
jeesite實戰 一 基本環境搭建 jeesite實戰 二 jeesite工具生成基本的頁面 本系列文章主要記錄專案過程中重點的專案技術 注意下面兩種情況下不同的註解 1.notblank註解一般用於字串型別 2.notnull註解一般用於double,integer型別 notblank mes...