【问题标题】:Update one database table value from another based on recently updated records根据最近更新的记录从另一个数据库表值更新
【发布时间】:2015-10-07 11:05:46
【问题描述】:

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

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

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

这里是代码

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

【问题讨论】:

标签: c# sql asp.net database-administration


【解决方案1】:

在 SQL Server 中,您可以使用triggers。 SQL Server 触发器可以在插入、更新、删除或代替插入等时触发。

您可以开始使用this lesson

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多