--新增
create trigger a on tb
for insert
as
declare @cs int,@yearno int,@f int
select @cs=@@rowcount
set @f=0select top 1 @yearno=year(日期) from inserted
if (@yearno%4=0 and @cs=366) or (@yearno%4<>0 and @cs=365)
set @f=1
if @f=0
rollback
go--删除
create trigger b on tb
for delete
as
declare @cs int,@yearno int,@f int
select @cs=@@rowcount
set @f=0select top 1 @yearno=year(日期) from deleted
if (@yearno%4=0 and @cs=366) or (@yearno%4<>0 and @cs=365)
set @f=1
if @f=0
rollback
go
create trigger a on tb
for insert
as
declare @cs int,@yearno int,@f int
select @cs=@@rowcount
set @f=0select top 1 @yearno=year(日期) from inserted
if (@yearno%4=0 and @cs=366) or (@yearno%4<>0 and @cs=365)
set @f=1
if @f=0
rollback
go--删除
create trigger b on tb
for delete
as
declare @cs int,@yearno int,@f int
select @cs=@@rowcount
set @f=0select top 1 @yearno=year(日期) from deleted
if (@yearno%4=0 and @cs=366) or (@yearno%4<>0 and @cs=365)
set @f=1
if @f=0
rollback
go
解决方案 »
- 一个关于类型转换的问题
- 求一更新SQL语句
- 用了nolock就不能使用别名?
- SQL 破折号处理 --
- 问一下各位大侠,我的那个中小型服务器最近查询比较慢
- 残缺数据,拼起来
- 求各位高手帮助!!!哪儿有建模工具ERWin4.0的中文使用手册??????mail给我或给网址都行?
- 关于ODBC的问题!
- 这句存储过程语句出错,Update @TableName_wzdjb Set ZF=@FzValue Where PZHM=@InputPzhm
- 初学者问:我在sql*plus workssheet里用delete删除一表所有行,执行后提示删除所有行成功,可是我第二次开启sql*plus workssheet时执行select后发现刚才的那张表记录并没被删除,这是为何?
- 大侠请来帮忙。简单group的问题。
- 高手看看這個如何實現?
create trigger tr_insert on 表
for insert
as
if exists(
select * from(
select 地区,年=year(日期),天数=count(*)
from inserted group by 地区,year(日期)
)a
where case day(dateadd(year,年-1900,'1900-3-1')-1) when 28 then 365 else 366 end<>天数)
begin
raiserror('导入错误,导入的天数不完整!导入失败',1,16)
rollback tran
end
create trigger tr_delete on 表
for delete
as
if exists(select * from 表 a where exists(select * from deleted where 地区=a.地区 and datediff(year,日期,a.日期)=0))
begin
raiserror('删除错误,必须整年删除!删除失败',1,16)
rollback tran
end