根据最近更新的记录从一个数据库表值更新另一个数据库表值
本文关键字:数据库 更新 一个 另一个 最近 记录 | 更新日期: 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触发器可以在插入、更新、删除或不插入时触发。
你可以开始使用本课