SQL Server自动更新表

SQL Server自动更新表,sql,sql-server,tsql,triggers,Sql,Sql Server,Tsql,Triggers,我目前正在使用此处显示的SQL语句从dbo.table0获取所有不同的区域数据,但我想在dbo.table1(区域)将新区域插入列时触发自动插入/更新 但我不知道如何去质疑它 INSERT INTO dbo.table1(region) SELECT DISTINCT region FROM dbo.table0; 试试下面的触发器 Create table table0 (region varchar(20)) Create table table1 (region va

我目前正在使用此处显示的SQL语句从
dbo.table0
获取所有不同的区域数据,但我想在
dbo.table1(区域)
将新区域插入列时触发自动插入/更新

但我不知道如何去质疑它

INSERT INTO dbo.table1(region) 
    SELECT DISTINCT region 
    FROM dbo.table0;
试试下面的触发器

Create table table0 (region varchar(20))
Create table table1 (region varchar(20))

insert into table0 values ('Muslim'),('Christian'),('Hindu')

CREATE TRIGGER tg_Relegion ON table0
AFTER INSERT 
AS
BEGIN
    INSERT dbo.table1(region) 
    SELECT DISTINCT a.region FROM inserted a
    LEFT JOIN table1 b on a.region = b.region
    WHERE b.region IS NULL

END

insert into table0 values ('xx'),('Christian'),('Hindu')

select * from table1

当你们读到这篇文章时,你们被什么卡住了?嗨@Dale K,若我把上面的问题放在触发器的主体中。它会将dbo.table0中所有不同的区域数据再次插入dbo.table1,还是只插入dbo.table1中不存在的新区域数据。table1(区域)您希望在
更新时发生什么?关于
删除
?嗨@HABO.@B.Muthamizhselvi已经给了我解决方案。顺便说一句,谢谢大家的帮助为什么你选择了dbo.table0而不是?检查每个
区域而不是新插入的区域似乎效率低下。将表名更改为inserted而不是table0。非常感谢。