天天看點

SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點

原文: SQLServer之DEFAULT限制

DEFAULT限制添加規則

1、若在表中定義了預設值限制,使用者在插入新的資料行時,如果該行沒有指定資料,那麼系統将預設值賦給該列,如果我們不設定預設值,系統預設為NULL。

2、如果“預設值”字段中的項替換綁定的預設值(以不帶圓括号的形式顯示),則将提示你解除對預設值的綁定,并将其替換為新的預設值。

3、若要輸入文本字元串,請用單引号 (') 将值括起來;不要使用雙引号 ("),因為雙引号已保留用于帶引号的辨別符。

4、若要輸入數值預設值,請輸入數值并且不要用引号将值括起來。

5、若要輸入對象/函數,請輸入對象/函數的名稱并且不要用引号将名稱括起來。

使用SSMS資料庫管理工具添加DEFAULT限制

1、連接配接資料庫,選擇資料表-》右鍵點選-》選擇設計。

SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點

2、在表設計視窗中-》選擇資料列-》在列屬性視窗中找到預設值或綁定-》輸入預設值(注意預設值的資料類型和輸入格式)。

SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點

3、點選儲存按鈕(或者ctrl+s)-》重新整理表-》再次打開表檢視結果。

SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點

使用T-SQL腳本添加DEFAULT限制

當表結構已存在時

首先判斷表中是否存在預設限制,如果存在則先删除預設限制再添加,如果不存在則直接添加。

文法:

use 資料庫

go

--判斷預設限制是否存在,如果存在則先删除,如果不存在則直接添加

if exists(select * from sysobjects where name=限制名)

alter table 表名 drop constraint 限制名;

go

--給指定列添加預設限制

alter table 表名 add constraint 限制名 default(限制值) for 列名;

示例:

use [testss]

if exists(select * from sysobjects where name='defalut_height')

alter table [testss].[dbo].[test1] drop constraint defalut_height;

alter table [testss].[dbo].[test1] add constraint defalut_height default(160) for height;

SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點
SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點

建立表時添加預設限制

首先判斷表是否選在,如果存在則先删除表再添加,如果不存在則直接添加。

--建立新表時添加預設限制

--資料庫聲明

use 資料庫名

--如果表已存在則先删除表再建立,如果表不存在則直接建立

if exists(select * from sysobjects where name=表名 and type ='U')

drop table 表名;

--建表文法聲明

create table 表名

(

--字段聲明

列名 列類型 identity(1,1) not null,

列名 列類型) null,

列名 列類型 null,

列名 列類型,

列名 列類型 constraint 限制名 default 預設值,

primary key clustered(列名 asc) with(ignore_dup_key=off) on [primary] --主鍵索引聲明

)on [primary]

--字段注釋聲明

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列說明' , @level0type=N'SCHEMA',

@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

use testss

if exists(select * from sysobjects where name='test1' and type ='U')

drop table test1;

create table test1

id int identity(1,1) not null,

name nvarchar(50) null,

sex nvarchar(50) null,

age nvarchar(50) null,

classid int,

height int constraint default_he default 166,

primary key clustered(id asc) with(ignore_dup_key=off) on [primary] --主鍵索引聲明

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id主鍵' , @level0type=N'SCHEMA',

@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'id';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',

@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'name';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',

@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'sex';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年齡' , @level0type=N'SCHEMA',

@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'age';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'班級id' , @level0type=N'SCHEMA',

@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'classid';

SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點
SQLServer之DEFAULT限制DEFAULT限制添加規則 使用SSMS資料庫管理工具添加DEFAULT限制使用T-SQL腳本添加DEFAULT限制 DEFAULT限制優缺點

DEFAULT限制優缺點

優點:

1、使用預設值可以減少代碼量,新增資料時可以不用寫新增預設值列,執行新增操作時時預設填充。

2、較有利于進行統計和分析,以及友善程式邏輯操作。

缺點:

1、使用不為NULL的預設值,占用了更多的存儲空間。