建立银行业务数据库bankdb,其中,帐户信息表(bank)存放帐户的信息,交易信息表(transInfo)存放每次的交易信息。  
1、当向交易信息表(transInfo)中插入一条交易信息时,自动更新对应帐户的余额。 
2、当删除交易信息表时,要求自动备份被删除的数据到表backupTable中。
3、跟踪用户的交易,交易金额超过20000元,则取消交易,并给出错误提示。
我写的触发器很不全,求完善
create database bankdb
/*建表*/
create table bank(
    customerName varchar(255),
    cardID int primary key,
    currentMoney smallmoney
    )
create table transInfo(
    transDate datetime,
    cardID int primary key,
    transType char(4),
    transMoney smallmoney,
    )
create table backupTable(
    transDate datetime,
    cardID int primary key,
    transType char(4),
    transMoney smallmoney,
    )
/*插入*/
insert into bank(customerName,cardID,currentMoney)values('张三',10010001,1000.0000)
insert into bank(customerName,cardID,currentMoney)values('李四',10010002,1.0000)
/*跟踪用户的交易,交易金额超过20000元,则取消交易,并给出错误提示*/
alter trigger Transactions_check on bank after update
as 
if( select currentMoney from inserted)>20000
print '交易金额超过20000元,交易取消'
rollback transaction  
/*当向交易信息表(transInfo)中插入一条交易信息时,自动更新对应帐户的余额。*/
alter trigger bank_info on bank after update
as
declare @transDate datetime,@cardID int,@transType char(4),@transMoney smallmoney
select @transDate=(select getdate()),@cardID=cardID from deleted
if exists(
    select deleted.cardID from deleted,inserted where deleted.currentMoney>inserted.currentMoney)
select @transType='支出',@transMoney=deleted.currentMoney-inserted.currentMoney from deleted,inserted
else
select @transType='支入',@transMoney=inserted.currentMoney-deleted.currentMoney from deleted,inserted
insert into transInfo values(@transDate,@cardID,@transType,@transMoney)
/* 当删除交易信息表时,要求自动备份被删除的数据到表backupTable中*/
alter trigger bank_info_copy on transInfo instead of delete
as
declare @transDate datetime,@cardID int,@transType char(4),@transMoney smallmoney,@ID int
set @ID=10010001
while(0=0)
begin
if exists(
select cardID from transInfo where cardID=@ID)
     begin
         select @transDate=transDate,@transType=transType,@transMoney=transMoney,@cardID=cardID from transInfo where cardID=@ID
         insert into backupTable values(@transDate,@cardID,@transType,@transMoney)
         delete from transInfo where cardID=@ID
         set @ID=@ID+1
     end
else
break
end
select*
from backupTable
第三个触发器真心不会写求大神指点。
/*交易*/BEGIN TRANSACTION /*--定义变量,用于累计事务执行过程中的错误--*/
DECLARE @errorSum INT 
SET @errorSum=0  --初始化为0,即无错误/*--转帐:张三的帐户少1000元,李四的帐户多1000元*/
UPDATE bank SET currentMoney=currentMoney-1000
   WHERE customerName='张三'
SET @errorSum=@errorSum+@@error
UPDATE bank SET currentMoney=currentMoney+1000
   WHERE customerName='李四'
SET @errorSum=@errorSum+@@error  --累计是否有错误
IF @errorSum<>0  --如果有错误
  BEGIN
    print '交易失败,滚回事务'
    ROLLBACK TRANSACTION 
  END  
ELSE
  BEGIN
    print '交易成功,提交事务,写入硬盘,永久的保存'
    COMMIT TRANSACTION   
  END
GO
print '查看转帐事务后的余额'
SELECT * FROM bank  
GO