1.
create trigger test
on tab
for delete
as
if exists(select 1 from deleted where flag > 1)
begin  
     RAISERROR('删除的记录中有flag大于1的记录',16,1)
     rollback tran
end
2.declare @temp varchar(10)
set @temp = '2003122501'
select @temp
select @temp + 1
/*           
---------- 
2003122501(所影响的行数为 1 行)            
----------- 
2003122502
*/
-----
??

解决方案 »

  1.   

    1.
    create trigger t on tab
    for delete
    as
    if exists(select 1 from deleted where flag>1)
    rollback tran
    go
      

  2.   

    2.
    create function f_get(@temp vachar(12))
    returns varchar(12)
    as
    begin
      set @remp=left(@temp,8)+right('0000'+cast(cast(right(@temp,4) as int) as varchar),4)
      return(@temp)
    end
    go
      

  3.   

    2.declare @temp varchar(12)
    set @temp = '200312250001'
    select @temp
    select @temp + 1
    /*
      

  4.   

    --上面错了一点
    create function f_get(@temp varchar(12))
    returns varchar(12)
    as
    begin
      set @temp=left(@temp,8)+right('0000'+cast(cast(right(@temp,4) as int)+1 as varchar),4)
      return(@temp)
    end
    go--调用
    select dbo.f_get('200312250001')
    godrop function f_get--结果:
    200312250002