灵活设置默认值
--好象没什么贴子来讨论这个,所以就随便写了一个,其实也挺简单的。
/*
在建表时一般会设置默认值,但如果默认值随着条件的变化有可能更改,比如录入员工资料时默认工资为500,下一年度涨工资后默认工资为600。
或者有很多表中的很多列有相同的默认值时,可以考虑用一个变量来设置,就要自定义数据类型一样。
SQL提供有这方面的功能,就是Create Default。
参考联机帮助: Create Default; sp_bindefault; sp_unbindefault
下面是测试:
*/
/*创建一个测试用表*/
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 行)
*/
问题点数:20、回复次数:4Top
1 楼phantomMan()回复于 2005-07-28 11:05:29 得分 5
顶,学习Top
2 楼bugchen888(臭虫)回复于 2005-07-28 13:39:28 得分 5
收藏Top
3 楼aw511(点点星灯)回复于 2005-07-28 13:42:57 得分 5
收藏
Top
4 楼gohst001(很多年来一直想知道昵称到底能多长~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)回复于 2005-07-28 14:28:40 得分 5
markTop




