表添加更新SQL Server

user_012314112

我有表tab,我想创建一个表History来插入在表中进行的更新tab为此,我创建了触发器tr_update,但是它不能正常工作。

Create table Tab 
(
id_tab char(5),
data_tab int
)

Create table History 
(id_modify       char(3),
old_data             int,
new_data             int,
)


Create trigger tr_update
on tab
after update
as
declare @id char(3)
declare @old int
declare @new int

select @id=id_tab, @new=data_tab from inserted
select @old=data_tab from deleted

insert into History (id_modify,old_data,new_data)
values (@id,@old,@new)
w

触发器适用于数据集,这意味着数据集inserteddeleted可以包含多个行,并且简单的分配将不起作用。相反,您可以使用inserteddeleted作为源表(在这种情况下,如果希望同时使用新数据和旧数据,可以将它们联接起来)。

Create trigger tr_update
on tab
after update
as

insert into History (id_modify,old_data,new_data)
select i.id_tab, d.data_tab, i.data_tab 
from inserted i
inner join deleted d on i.id_tab = d.id_tab

顺便说一句,似乎id_data历史记录表中的文件只有3个字符宽,而原始表中的文件有5个字符宽。这可能行不通;历史记录表中的字段必须大小相同(或更宽),否则服务器将不允许插入,因为数据可能会被截断。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#更新SQL Server表

来自分类Dev

如何定期更新SQL Server 2008表

来自分类Dev

使用本地数据更新SQL Server表

来自分类Dev

SQL Server表中的并行插入/更新

来自分类Dev

从Python Pandas更新SQL Server表

来自分类Dev

SQL Server中更新表的最快方法

来自分类Dev

SQL Server脚本更新表结构

来自分类Dev

SQL Server:使用自身的汇总更新表

来自分类Dev

分别从SQL Server更新HTML表

来自分类Dev

缺少值的SQL Server更新表

来自分类Dev

SQL Server表中的并行插入/更新

来自分类Dev

SQL Server参考/查找表和更新

来自分类Dev

单击按钮不会更新SQL Server表

来自分类Dev

更新 SQL Server 中的多个表

来自分类Dev

从SQL Server更新表时从表返回列

来自分类Dev

使用左联接的结果更新sql表(sql server)

来自分类Dev

使用左联接的结果更新sql表(sql server)

来自分类Dev

更新时在值的末尾添加字符-SQL Server

来自分类Dev

在MS SQL Server表中添加一列

来自分类Dev

在while循环中向SQL Server表添加新列

来自分类Dev

这是向SQL Server表添加多行的最快方法

来自分类Dev

将级联添加到SQL Server中的存在表

来自分类Dev

在while循环中向SQL Server表添加新列

来自分类Dev

更新表SQL Server中的前1条记录

来自分类Dev

如何使用最新记录更新SQL Server表

来自分类Dev

更新列名称未知的SQL Server临时表中的数据

来自分类Dev

表架构更新后,列值错误的SQL Server视图

来自分类Dev

如果SQL Server中存在列,如何更新表?

来自分类Dev

使用查询结果更新现有表SQL Server 2012