首页 >  应用与开发  >  数据库

sqlserver中如何实现月份的约束

发布日期:2010-06-04 

提问者:我想把某个合同的编号中加入月份,如HT200806HSB,其中06表示月份,如何实现这两位一定是合法的月份
最佳答案:
设表名为tablename,编号字段名为合同编号,建立下面两个触发器,即可保证编码月份部份合法。
create TRIGGER TR_tablename_Insert ON tablename
FOR INSERT
AS
declare
  @BH  varchar(30)
  select @BH="合同编号" from inserted
  if convert(int,substring(@bh,7,2)) between 1 and 12
     begin
     raiserror(' 编码中月份部份不合法,请重新编码!',16,1)
     return
     end

GO

create TRIGGER TR_tablename_UPDATE ON tablename
FOR UPDATE
AS
declare
  @BH  varchar(30)
  select @BH="合同编号" from inserted
  if convert(int,substring(@bh,7,2)) between 1 and 12
     begin
     raiserror(' 编码中月份部份不正确,请重新编码!',16,1)
     return
     end

GO