[dbo].[9年级_1班](
[姓名] [nvarchar](100) NULL,
[性别] [nvarchar](100) NULL,
[年龄] [int] NULL,
[借用(次数)] [int] NULL,
[学号] [nvarchar](100) NUL)
[dbo].[9年级_2班](
[姓名] [nvarchar](100) NULL,
[性别] [nvarchar](100) NULL,
[年龄] [int] NULL,
[借用(次数)] [int] NULL,
[学号] [nvarchar](100) NUL)
上面两张表存放在数据库ST_1 中,我想在数据库ST_2中新建一张中间表,通过学号关联ST_1数据库中的[dbo].[9年级_1班]和[dbo].[9年级_2班]这两张,当ST_1中两张数据表发生改变后,自动更新ST_2中的表数据,用于分别统计1班和2班的借用次数。请问如何实现,麻烦以实例进行解答,我复制进去就能使用(菜鸟请理解)?
--方案一
USE ST_1
go
--在ST_1库创建9年级_1班,9年级_2班的表
CREATE TABLE [dbo].[9年级_1班](
[姓名] [nvarchar](100) NULL,
[性别] [nvarchar](100) NULL,
[年龄] [int] NULL,
[借用(次数)] [int] NULL,
[学号] [nvarchar](100) NULL)
CREATE TABLE [dbo].[9年级_2班](
[姓名] [nvarchar](100) NULL,
[性别] [nvarchar](100) NULL,
[年龄] [int] NULL,
[借用(次数)] [int] NULL,
[学号] [nvarchar](100) NULL)
USE ST_2
GO
--在ST_2库创建统计结果表
CREATE TABLE 统计结果
(
[学号] [nvarchar](100) NULL,
[借用(次数)] [int] NULL
)
USE ST_1
GO
--创建触发器
CREATE TRIGGER tr_9年级_1班
ON dbo.[9年级_1班]
FOR INSERT,UPDATE,DELETE
AS
BEGIN
DELETE a FROM ST_2.dbo.统计结果 a INNER JOIN Deleted b ON b.学号 = a.学号
INSERT INTO ST_2.dbo.统计结果(学号,[借用(次数)])
SELECT 学号,[借用(次数)] FROM Inserted
END
go
--创建触发器
CREATE TRIGGER tr_9年级_2班
ON dbo.[9年级_2班]
FOR INSERT,UPDATE,DELETE
AS
BEGIN
DELETE a FROM ST_2.dbo.统计结果 a INNER JOIN Deleted b ON b.学号 = a.学号
INSERT INTO ST_2.dbo.统计结果(学号,[借用(次数)])
SELECT 学号,[借用(次数)] FROM Inserted
END
GO
不是mysql数据库吗
1,订阅发布 2,存储过程
你这个在ST_2库创建一个视图就可以了吧,如果非要建表的话,用触发器来同步数据
--方案二
USE ST_2
GO
CREATE VIEW 统计结果
as
SELECT 学号,[借用(次数)] FROM ST_1.dbo.[9年级_1班]
UNION ALL
SELECT 学号,[借用(次数)] FROM ST_1.dbo.[9年级_2班]