SQLServer值DEFAULT約束

來源:互聯網
上載者:User

標籤:優缺點   sts   @Value   for   技術分享   var   clu   sch   分享   

DEFAULT約束添加規則

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

2、如果“預設值”欄位中的項替換綁定的預設值(以不帶圓括弧的形式顯示),則將提示你解除對預設值的綁定,並將其替換為新的預設值。

3、若要輸入文本字串,請用單引號 (‘) 將值括起來;不要使用雙引號 ("),因為雙引號已保留用於引號識別項。

4、若要輸入數值預設值,請輸入數值並且不要用引號將值括起來。

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

使用SSMS資料庫管理工具添加DEFAULT約束

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

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

3、點擊儲存按鈕(或者ctrl+s)-》重新整理表-》再次開啟表查看結果。

使用T-SQL指令碼添加DEFAULT約束當表結構已存在時

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

文法:

use 資料庫
go
--判斷預設約束是否存在,如果存在則先刪除,如果不存在則直接添加
if exists(select * from sysobjects where name=約束名)
alter table 表名 drop constraint 約束名;
go
--給指定列添加預設約束
alter table 表名 add constraint 約束名 default(約束值) for 列名;
go

樣本:

use [testss]
go
--判斷預設約束是否存在,如果存在則先刪除,如果不存在則直接添加
if exists(select * from sysobjects where name=‘defalut_height‘)
alter table [testss].[dbo].[test1] drop constraint defalut_height;
go
--給指定列添加預設約束
alter table [testss].[dbo].[test1] add constraint defalut_height default(160) for height;
go

建立表時添加預設約束

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

文法:

--建立新表時添加預設約束
--資料庫聲明
use 資料庫名
go
--如果表已存在則先刪除表再建立,如果表不存在則直接建立
if exists(select * from sysobjects where name=表名 and type =‘U‘)
drop table 表名;
go
--建表文法聲明
create table 表名
(
--欄位聲明
列名 列類型 identity(1,1) not null,
列名 列類型) 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‘列名‘;

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‘列名‘;

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‘列名‘;

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‘列名‘;

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‘列名‘;

go

樣本:

--建立新表時添加預設約束
--資料庫聲明
use testss
go
--如果表已存在則先刪除表再建立,如果表不存在則直接建立
if exists(select * from sysobjects where name=‘test1‘ and type =‘U‘)
drop table test1;
go
--建表文法聲明
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]--主鍵索引聲明
)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‘;

go

DEFAULT約束優缺點

優點:

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

2、較有利於進行統計和分析,以及方便程式邏輯操作。

缺點:

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

 

SQLServer值DEFAULT約束

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.