SQLServer·面试题

1、触发器 存取款

题目、活期存款中,“储户”通过“存取款单”和“储蓄所”发生联系。假定储户包括:账号,姓名,电话,地址,存款额;“储蓄所”包括:储蓄所编号,名称,电话,地址(假定一个储户可以在不同得储蓄所存取款)

1、写出设计以上表格的语句(4分)
2、创建一个触发器TR1完成下面内容:
当向“存取款单”表中插入数据时,如果存取标志=1则应该更改储户表让存款额加上存取金额,如果存取标志=0则应该更改储户表让存款额减去存取金额,如果余额不足显示余额不足错误。
View Code
CREATE TABLE CREATE TRIGGER tr1 on qukuan after insert

AS

BEGIN

   

declare @sid nvarchar(50)

declare @type int

declare @qian int

declare @yuer int

select @sid=sid,@type=[type],@m=m from inserted

select @yuer=yuer from cunkuan

if(@type=1)

begin

update cunkuan set yuer=yuer+@qian

end

else

begin

 if(@yuer<@qian)

   begin

     print '余额不足'

   end

 else

    begin

     update cunkuan set yuer=yuer-@qian

    end

end

END

GO
View Code

 2、查询每个类型最近的一条记录

select * from (select Type,Title,Createtime,ROW_NUMBER() over(Partition by Type order by createtime desc) RowId from News) T where T.RowId=1
View Code
原文地址:https://www.cnblogs.com/eric-gms/p/3757131.html