sql server中default value默认值的用法小结

发布时间:2021-01-08编辑:脚本学堂
本文介绍下,在sql server中创建与修改default value值的方法,有需要的朋友,参考下吧。

1,在创建表时,给字段添加默认值约束
例如:
 

复制代码 代码示例:
CREATE TABLE "dbo"."Test" 

   id int PRIMARY KEY, 
   sex varchar(10) DEFAULT ('boy'), 
   name varchar(40), 
   age int DEFAULT ((1)), 

注意:
此时默认值约束,没有约束名称。DMBS会自动的给添加一个“默认值约束名称”。
注意,varchar类型和int类型在DEFAULT 中的写法:分别用‘’和()把value值包起来。

2,在创建表之后,给字段添加的默认值约束
 

复制代码 代码示例:
alter table [dbo].[Test] add constraint Test_name_Default Default('Tom') for baseCurrencyCode 

注意:
此时,必须编写一个约束名称,防止重名。

3,修改字段原有的默认值约束
 

复制代码 代码示例:
declare @csname varchar(100) 
set @csname= '' 
 
select @csname=[name] 
from sysobjects  
where id=(select cdefault from syscolumns where id=object_id('Test') and name='age') 
 
exec('alter table [dbo].[Test] drop constraint ' + @csname ) 
 
exec('alter table [dbo].[Test] add constraint ' + @csname + ' Default((18)) for age') 

注意:
默认值约束,不能修改。必须先drop之后再add
drop的时候,必须知道当前“默认值约束的名称”。通过上面的sql可以查出Test表的age字段所绑定的“默认值约束名称”,才可以drop。

测试时发现sql server 2005的一个bug:
默认值的长度大于字段设定的长度时,同样不报错,可以设置成功!
在oracle上就会报错,无法设置成功。

在这里,你可以bs下微软了,哈哈!