再求SQL

bashanhu 2010-01-03 03:46:39
Create table ryzl([id] int,[gh] varchar(15))
Insert ryzl
select 1,'0015' union all
select 2,'0018'
Go

Create table qd1001pb([id] int,[card] varchar(15))
Insert qd1001pb
select 1,'0015' union all
select 2,'0018'
Go

两个表通过id关联。需要写触发器,对ryzl表有操作的话相应的增加或更新、删除qd1001pb表,只是qd1001pb表名不固定,中间的“1001”代表2010年01月
,如果是2月的话,对应更新的表名要自动更改,请大侠们指教
...全文
117 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bashanhu 2010-01-03
  • 打赏
  • 举报
回复
恩,受教了,谢谢两位,节日快乐!
SQL77 2010-01-03
  • 打赏
  • 举报
回复
create trigger tr_d
on ryzl
for delete
as
begin
declare @s varchar(100)
set @s = 'delete from qd'+RIGHT( convert(char(6),getdate(),112) ,4)+'pb'
exec (@s)
end
go
SQL77 2010-01-03
  • 打赏
  • 举报
回复
create  trigger tr_d 
on ryzl
for delete
as
begin
declare @s varchar(100)
set @s = 'delete from qd'+RIGHT( convert(char(8),getdate(),112) ,4)+'pb'
exec (@s)
end
go


???借用石头大哥的
-狙击手- 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bashanhu 的回复:]
是根据当前的系统时间判断的
[/Quote]

参4楼,条件自己加
bashanhu 2010-01-03
  • 打赏
  • 举报
回复
是根据当前的系统时间判断的
-狙击手- 2010-01-03
  • 打赏
  • 举报
回复
比如删除


create trigger tr_d
on ryzl
for delete
as
begin
declare @s varchar(100)
set @s = 'delete from qd'+left( convert(char(10),getdate(),12) ,4)+'pb'
exec (@s)
end
go
bashanhu 2010-01-03
  • 打赏
  • 举报
回复
补充:2月的时候需要更新的表为qd1002pb.两种情况:一、直接取系统时间转化如何实现;二、如果把1001存储在表c中,列名为ym,此列的最大值为当前采用的表名部分,又该如何实现
SQL77 2010-01-03
  • 打赏
  • 举报
回复
如果是2月的话,对应更新的表名要自动更改,请大侠们指教

那你如何判断是哪个月的?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧