1樓:
1.如果在本欄位上有約束,先將約束刪除再用 alter table 表名 modify 列名 not null; 的辦法處理。
2. 第一步:刪除約束
3.alter table 表名 drop constraint 約束名
4.第二步:建立
5.alter table 表名 column 欄位名 欄位型別 not null
6.注,把第二句話中的欄位型別寫上
2樓:匿名使用者
isnull(欄位名,'') 或者isnull(欄位名,0)我用的sqlserver
欄位為字串時用第一個,數字是用第二個
只是提供一個思路,希望對你有幫助...
3樓:臺三詩
如果在本欄位上有約束,先將約束刪除再用「crazyherozk」說的辦法處理。
第一步:刪除約束
alter table 表名 drop constraint 約束名第二步:建立
alter table 表名 column 欄位名 欄位型別 not null
注,把第二句話中的欄位型別寫上試下看
4樓:飄雨
alter table 表名
alter column 欄位名 型別 not null例如:alter table a;
alter column name char(20) not null
5樓:匿名使用者
alter table aa drop 欄位
alter table aa add
欄位 char(1) not null default ''
6樓:心甘情願
是不是那個欄位已經有空值了 要把空值處理一下。。。
7樓:匿名使用者
alter table 表名 modify 列名 not null;
8樓:藍天下的智者
alter 表名 column 欄位名 not null
9樓:熱愛資料庫的同學
在預設的情況下,表的列接受 null 值。
not null 約束強制列不接受 null 值。
not null 約束強制欄位始終包含值。這意味著,如果不向欄位新增值,就無法插入新記錄或者更新記錄。
下面的 sql 強制 「id」 列、 「lastname」 列以及 「firstname」 列不接受 null 值:
-from shulanxt
sql語句中如何為新增列指定為not null?
10樓:匿名使用者
主鍵肯定不能為not null。
再一個就是看看是否有約束了。
alter table 只可以新增滿足下述條件的列: 列可以包含空值;或者列具有指定的 default 定義;或者要新增的列是標識列或時間戳列;當然,如果前幾個條件均未滿足,表必須為空以允許新增此列。不能將列"***"新增到非空表"xx"中,它不滿足上面條件。
alter table xx add 新增列表要是空的
指定列是否可接受空值。如果列不允許空值,則在指定了預設值或表為空的情況下,才能用 alter table 語句新增該列。同時指定了 persisted 時,才可以為計算列指定 not null。
如果新列允許空值,但沒有指定預設值,則新列在表中的每一行都包含一個空值。如果新列允許空值,並且指定了新列的預設值,就可以使用 with values 將預設值儲存到表中每個現有行的新列中。
如果新列不允許空值,並且表不為空,那麼 default 定義必須與新列一起新增;並且,載入新列時,每個現有行的新列中將自動包含預設值。
在 alter column 語句中指定 null,可以強制 not null 列允許空值,但 primary key 約束中的列除外。只有列中不包含空值的時候,才可以在 alter column 中指定 not null。須將空值更新為某個值後,才允許執行 alter column not null 語句,例如:
新建不能為空,故要先新建個可以為空的列。
然後強制為空。
下面**以測試。
alter table 表名 add 列名 nvarchar(20) null
goupdate 表名 set stuname = n'some_value' where 列名 is null
alter table 表名 alter column 列名 nvarchar(20) not nullgo
sql 命令求解 sql語句中如何為新增列指定為not null
11樓:匿名使用者
主鍵肯定不能為not null了- -
還有就是看看有沒約束
alter table 只允許新增滿足下述條件的列: 列可以包含空值;或者列具有指定的 default 定義;或者要新增的列是標識列或時間戳列;或者,如果前幾個條件均未滿足,則表必須為空以允許新增此列。不能將列"***"新增到非空表"xx"中,因為它不滿足上述條件。
alter table xx add 新增列表要是空的
指定列是否可接受空值。如果列不允許空值,則只有在指定了預設值或表為空的情況下,才能用 alter table 語句新增該列。只有同時指定了 persisted 時,才能為計算列指定 not null。
如果新列允許空值,但沒有指定預設值,則新列在表中的每一行都包含一個空值。如果新列允許空值,並且指定了新列的預設值,則可以使用 with values 將預設值儲存到表中每個現有行的新列中。
如果新列不允許空值,並且表不為空,那麼 default 定義必須與新列一起新增;並且,載入新列時,每個現有行的新列中將自動包含預設值。
在 alter column 語句中指定 null,可以強制 not null 列允許空值,但 primary key 約束中的列除外。只有列中不包含空值時,才可以在 alter column 中指定 not null。必須將空值更新為某個值後,才允許執行 alter column not null 語句,例如:
因為新建不能為空所以要先新建個可以為空的列
然後強制為空
下面**以測試
alter table 表名 add 列名 nvarchar(20) null
goupdate 表名 set stuname = n'some_value' where 列名 is null
alter table 表名 alter column 列名 nvarchar(20) not nullgo
12樓:
在建表的時候欄位後面直接加上not null的判斷,每個資料庫語法都不一樣。
sqlserver是
create table *** (id int not null,desc varchar(100) not null)
oracle好像也一樣,db2似乎也是
informix好像需要額外加非空判斷。
sql資料庫欄位設定成not null的話,欄位不設定預設值是不是就不能插入了?
13樓:墨汁諾
是的,必須有預設值。
因為在sql server中null跟''是完全不一樣的,null表示未知,沒有型別可言,而''是有型別的,表示一個空的字串。所以有not null約束的列是可以插入''的。
有時候做判斷的時候可能某個列既有null值又有''值,這時候就經常用 where isnull(列名,'')=''進行判斷。在oracle中,''是等同於null值進行處理的,這時候有not null約束的列就不能插入''了。
14樓:桓笑容
如果是not null的話,那你就必須插入一個值,你不插入值的話,就會呼叫預設值。
如果這兩個都沒有的話,就會報錯了
所以,改下你的insert
insert into zc_manager(user,pass,level) values('admin','123456',-1);
15樓:饅頭和小籠包
sql資料庫欄位設定成not null的話,欄位不設定預設值是不是就不能插入了?
是的,必須有預設值。貌似數字之類的它本身就有預設值0吧。
16樓:玩泥小可愛
你可以把資料庫的欄位not null去掉,然後再執行~這樣執行的時候,沒有插入資料的欄位就是null
17樓:豆芽爾
not null 你都設定成不能為空了。 你怎麼插入。 再有。
別人是不是設定了default 『』 了 你也沒看到。 如果他設定了not null 並沒有設定default的話 那麼他也不能插入
18樓:匿名使用者
level必須有值 ,如不給值,就得設定預設值
資料庫中為資料表增加新的欄位時,可以為新欄位設定not null約束嗎?
19樓:司馬刀劍
是的,必須有百預設值。
因為在sql server中null跟''是完全不一樣的,null表示未知,沒有型別可言,而''是有型別的,表示一個空的字串。所以有not null約束的列是可以插入''的。
有時候做判斷的時候可能某個度列既有null值又有''值,這時候就經常用 where isnull(列名,'')=''進行判斷。在oracle中,''是等同於null值進行處理的,這時候有not null約束的列就不知能插入''了。
sql如何查詢空值的欄位,sql資料庫查詢中,空值查詢條件怎麼寫?
小凝聊娛樂 sql查詢空值的欄位寫法 select a.欄位 from student a where a.欄位 like student為表名 查詢類似空值的寫法 1 查詢名稱有退格鍵 select from t bd item info where charindex char 8 item n...
如何查詢某個資料庫的某個表欄位,SQL資料庫,如何查詢資料庫內含有某一列(某欄位,如name)的所有表
流浪還不行嗎 2008沒用過,不懂!不過我覺得應該和2003或者2005是一樣的操作,因為他們都使用的sql語句,變化應該不是很大! select b.name 表名,a.name 欄位名 from syscolumns a join sysobjects b on a.id b.id where ...
sql查詢中如何判斷字串欄位的內容的長度
小丁創業 實現的方法和詳細的操作步驟如下 1 首先,開啟sql查詢器,並連線相應的資料庫表,例如store表,如下圖所示。2 其次,完成上述步驟後,單擊工具欄的 查詢 選項,然後輸入如下 如下圖所示。3 最後,完成上述步驟後,單擊 執行 選項來查詢所需結果,如下圖所示。這樣,以上的問題就解決了。 就...