sql server建了表,表裡明明設成不能為空。但後來插入空值又可以啊

2021-04-26 06:23:27 字數 1825 閱讀 9836

1樓:手機使用者

不可能吧 不能為null 和不能為""不是一回事 設定的不能為空間就是說在插入資料時不能不給值,但可以給""

怎樣用sql新建一個不為空的欄位

2樓:匿名使用者

建立表的時候:

create table table_name

(id serial, // ---自增,item---

username char(20) not null, //---非空---

nation char(20) default 'china' //---預設

值---

)修改表的時候:

新增:alter table table_name add(column_name char(120) default '預設值')

修改:alter table table_name modify(old_name char(120) default '預設值')

我用的是informix資料庫,不過整體上是相同的。你可以嘗試一下,或者告訴我你用的是什麼資料庫,我再幫你解決。

----------------------正義的分割線----------------------

發現你的問題了,你在修改表結構的時候,要求這個欄位不為空,可是你並沒有給表的這個欄位賦值,這個效果就貌似"又要馬兒跑,又不給草吃"。其實你只要一開始就給這個欄位賦一個預設值就可以了,如果這個欄位的值為空了,資料庫就會給這個欄位賦值為預設值,不會出現真正的為空情況。

你嘗試下下面的語句:

alter table [table名] add/modify columnname datatype default(defaultvalue)

3樓:匿名使用者

alter table aaww add field77 int not null

在sql2000中應該可以新增啊

資料庫是否對了`

建一個有預設值的欄位:

atler constraint 約束名 default('值') for 欄位

4樓:佳樂比海

1.alter table aaww add field77 int null(只去掉了null,sql server不能新增非空的欄位,因為添進去了,如果這個表已有資料,這個欄位又沒賦值,則約束不完整)

2.alter table aaww

add constraint df_field77 default(77) for field77(77為預設值)

5樓:萬年冰霜

是什麼sql?

如果是mysql的話,不能用int,要用number還有報錯報的什麼。自己看下報錯就知道了

雖然不精通sql,不過你的命令也寫得太……不規範了。

6樓:匿名使用者

建表的話,不用這麼麻煩吧,還用sql來建表;

推薦你是用erwin,圖形化資料庫設計工具,可以自動生成表,修改也方便,設定索引,預設值都很很簡單的,完全是圖形化的,不用寫一行**;

當然,會寫sql,也是必要的,雖然工作中很少用到這些建表語句;

7樓:匿名使用者

應該這麼寫

alter table aaww add field77 int not null

default 1 with values下面的default就是預設值,

8樓:匿名使用者

推薦樓主使用phpmyadmin圖形化介面,那裡面有sql語句(自動生成)

sqlserver建表時先判斷表有沒有存在

1 開啟資料庫選中要建立表的資料庫,在資料庫中開啟表,然後點新建,建立表,就會出現一個建表視窗。2 在這裡可以輸入設定相關表的結構型別,在新視窗輸入資料型別欄位名稱和大小。3 每個表為了資料的唯一,提高查詢效能都需要建立一個主鍵,這個欄位沒什麼意義。只是起個標識。4 主鍵一般可以設為數字或字串,在這...

怎麼匯出Sql Server資料庫表結構和資料的指令碼

開啟sql server 2008 後,選擇你要匯出的資料庫 2在資料庫上 右擊,選擇 任務 生成指令碼 3進入簡介頁面,直接點選 下一步 就可以了4選擇物件頁面,可以選擇匯出整個資料庫的指令碼,或者其中的部分表,很靈活 5進入設定指令碼選項,首先把匯出的路徑選擇好防止一會兒忘記設定路徑,找不到導去...

怎樣檢測sqlserver資料庫的錶快要滿了

沒辦法檢測,要看你設定的閾值了 如何檢視sqlserver資料庫每個表佔用的空間大小 sql server 怎麼查資料庫有多少個表 sql server 數表 select count 1 from sysobjects where xtype u 數檢視 select count 1 from s...