前端用事务更新两个表的触发器问题
各位老大标题有点混乱,情况是这样的
现有 表a
CREATE TABLE [a]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](50) NULL, [age] [varchar](50) NULL, CONSTRAINT [PK_a] PRIMARY KEY CLUSTERED ( [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
CREATE TABLE [dbo].[b]( [id] [int] IDENTITY(1,1) NOT NULL, [aid] [int] NULL, [price] [numeric](18, 0) NULL, [count] [numeric](18, 0) NULL, CONSTRAINT [PK_b] PRIMARY KEY CLUSTERED ( [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOALTER TABLE [dbo].[b] WITH CHECK ADD CONSTRAINT [FK_b_a] FOREIGN KEY([id])REFERENCES [dbo].[a] ([id])GOALTER TABLE [dbo].[b] CHECK CONSTRAINT [FK_b_a]GO
CREATE TABLE [dbo].[c]( [id] [int] IDENTITY(1,1) NOT NULL, [aid] [int] NULL, [bid] [int] NULL, [oldname] [varchar](50) NULL, [name] [varchar](50) NULL, [oldage] [varchar](50) NULL, [age] [varchar](50) NULL, [oldprice] [numeric](18, 0) NULL, [price] [numeric](18, 0) NULL, [oldcount] [numeric](18, 0) NULL, [count] [numeric](18, 0) NULL, CONSTRAINT [PK_c] PRIMARY KEY CLUSTERED ( [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
update a set name = '测试',age='10' where id = 1update b set price = 500,[count] = 300 where id = 1 and aid = 1
id aid bid oldname name oldage age oldprice price oldcount count1 1 1 名称 测试 20 10 100 500 50 300
Create Trigger upd_adTOc on afor updateasif exists (select 1 from inserted,a where inserted.colname=a.colname)begin insert into c select col1,col2... from a end
[解决办法]
楼主如果只有一个表更新呢,那怎么办?
还是说一定是2个表一定是一起更新
如果是第二种情况的话,楼主为何要写出发器,直接在写一条插入语句即可,触发器真是多此一举
[解决办法]