/*
在建表时一般会设置默认值,但如果默认值随着条件的变化有可能更改,比如录入员工资料时默认工资为500,下一年度涨工资后默认工资为600。
或者有很多表中的很多列有相同的默认值时,可以考虑用一个变量来设置,就要自定义数据类型一样。
SQL提供有这方面的功能,就是Create Default。
参考联机帮助: Create Default; sp_bindefault; sp_unbindefault
下面是测试( 测试环境SQL2000)
*/
/*创建一个测试用表*/
Create Table Employee (
EmpID char(3),
Salary numeric(10,2)
)
--未绑定默认值时insert两条记录看看
insert into Employee (EmpID) values('001')
insert into Employee (EmpID) values('001')
go
/*创建一个默认值,值为500*/
Create Default DF_salary AS 500
GO
/*将默认值绑定到该表的Salary列*/
Exec sp_bindefault DF_salary, 'Employee.Salary'
go
--绑定默认值后再insert两条记录看看
insert into Employee (EmpID) values('101')
insert into Employee (EmpID) values('102')
--取消绑定
EXEC sp_unbindefault 'Employee.Salary'
go
--删除默认值
Drop Default DF_salary
go
--新建一个同样的默认值,值改为另一个数
Create Default DF_salary AS 600
GO
--再次绑定
Exec sp_bindefault DF_salary, 'Employee.Salary'
go
--用新默认值后再insert两条记录看看
insert into Employee (EmpID) values('201')
insert into Employee (EmpID) values('202')
--查询结果
select * from Employee
/* 以下是结果
EmpID Salary
----- ------------
001 NULL
001 NULL
101 500.00
102 500.00
201 600.00
202 600.00
(所影响的行数为 6 行)
*/