根据最近更新的记录从一个数据库表值更新另一个数据库表值

本文关键字:数据库 更新 一个 另一个 最近 记录 | 更新日期: 2023-09-27 18:16:20

我有一个场景,我必须根据最近更新的记录从另一个数据库表更新数据库表中的记录。

如果记录是新的,插入语句将触发如果记录被更新,Update语句将触发

这里的问题是我们不知道查询返回的表的个数以及列名。

这里是代码

DECLARE @RowsToProcess  int
DECLARE @CurrentRow     int
declare @tablenames varchar(100)
DECLARE @sampleTable TABLE(RowID int not null primary key identity(1,1), tablename varchar(100),last_user_update datetime)
insert into @sampleTable SELECT [TableName] = OBJECT_NAME(object_id),last_user_update
FROM    sys.dm_db_index_usage_stats
WHERE    database_id = DB_ID('DATABASE')
select * from @sampleTable
SET @RowsToProcess=@@ROWCOUNT
print @RowsToProcess
SET @CurrentRow=0
WHILE @CurrentRow<@RowsToProcess
BEGIN
    SET @CurrentRow=@CurrentRow+1
    SELECT @tablenames= tablename from @sampleTable
        WHERE RowID=@CurrentRow
   print @tablenames
   EXEC('INSERT INTO '+ 'SM_' + @tablenames +'  SELECT * FROM  '+@tablenames + 'Where flag = NULL' )
END

根据最近更新的记录从一个数据库表值更新另一个数据库表值

在SQL Server中可以使用触发器。SQL Server触发器可以在插入、更新、删除或不插入时触发。

你可以开始使用本课