34,590
社区成员
发帖
与我相关
我的任务
分享
create table A
(SysNO int, 张三 varchar(10), 李四 varchar(10), 王二麻子 varchar(10), 时间 varchar(10))
go
create table B
(SysNo int identity(1,1), 姓名 varchar(10), 行为 varchar(10), 时间 varchar(10))
go
create trigger 触发器名 on A
instead of insert
as
begin
select * into # from inserted
insert A select * from #
declare @s nvarchar(4000)
set @s=''
select
@s=@s+' insert B select COL='+quotename(Name,'''')+','+quotename(Name)+',时间 from #'
from
syscolumns a
where
id=object_id('A') and Name not in('SysNO','时间') order by Colid asc
exec(@s)
end
go
insert into A
SELECT 1,'上班','下班','午休','2007-12-4'
go
select * from A
select * from B
--drop table a,b
SysNO 张三 李四 王二麻子 时间
----------- ---------- ---------- ---------- ----------
1 上班 下班 午休 2007-12-4
(所影响的行数为 1 行)
SysNo 姓名 行为 时间
----------- ---------- ---------- ----------
1 张三 上班 2007-12-4
2 李四 下班 2007-12-4
3 王二麻子 午休 2007-12-4
(所影响的行数为 3 行)
create table A
(SysNO int, 张三 varchar(10), 李四 varchar(10), 王二麻子 varchar(10), 时间 varchar(10))
go
create table B
(SysNo int identity(1,1), 姓名 varchar(10), 行为 varchar(10), 时间 varchar(10))
go
create trigger 触发器名 on A
after insert
as
begin
insert into B
select '张三',case when [张三]= 'shangban' then '上班' end,[时间] from inserted
union
select '李四',case when [李四]= 'xiaban' then '下班' end,[时间] from inserted
union
select '王二麻子',case when [王二麻子]= 'wuxiu' then '午休' end,[时间] from inserted
end
go
insert into A
SELECT 1,'shangban','xiaban','wuxiu','2007-12-4' union all
SELECT 1,'shangban','xiaban','wuxiu','2007-12-5'
select * from b
drop table a,b
/*
SysNo 姓名 行为 时间
----------- ---------- ---------- ----------
1 李四 下班 2007-12-4
2 李四 下班 2007-12-5
3 王二麻子 午休 2007-12-4
4 王二麻子 午休 2007-12-5
5 张三 上班 2007-12-4
6 张三 上班 2007-12-5
*/
create table A
(SysNO int, 张三 varchar(10), 李四 varchar(10), 王二麻子 varchar(10), 时间 varchar(10))
go
create table B
(SysNo int identity(1,1), 姓名 varchar(10), 行为 varchar(10), 时间 varchar(10))
create trigger 触发器名 on A
after insert
as
begin
insert into B
select '张三',[张三],[时间] from inserted
insert into B
select '李四',[李四],[时间] from inserted
insert into B
select '王二麻子',[王二麻子],[时间] from inserted
end
insert into A
SELECT 1,'上班','下班','午休','2007-12-4' union all
SELECT 1,'上班','下班','午休','2007-12-5'
select * from b
/*
SysNo 姓名 行为 时间
----------- ---------- ---------- ----------
1 张三 上班 2007-12-4
2 张三 上班 2007-12-5
3 李四 下班 2007-12-4
4 李四 下班 2007-12-5
5 王二麻子 午休 2007-12-4
6 王二麻子 午休 2007-12-5
(所影响的行数为 6 行)
*/
create table A
(SysNO int, 张三 varchar(10), 李四 varchar(10), 王二麻子 varchar(10), 时间 varchar(10))
go
create table B
(SysNo int identity(1,1), 姓名 varchar(10), 行为 varchar(10), 时间 varchar(10))
create trigger 触发器名 on A
after insert
as
begin
insert into B
select '张三',[张三],[时间] from inserted
insert into B
select '李四',[李四],[时间] from inserted
insert into B
select '王二麻子',[王二麻子],[时间] from inserted
end
insert into A
SELECT 1,'上班','下班','午休','2007-12-4'
select * from b
/*
SysNo 姓名 行为 时间
----------- ---------- ---------- ----------
1 张三 上班 2007-12-4
2 李四 下班 2007-12-4
3 王二麻子 午休 2007-12-4
(所影响的行数为 3 行)
*/