当前位置: 代码迷 >> Sql Server >> 怎么将 触发器中执行的select语句返回的结果 转换为字符串
  详细解决方案

怎么将 触发器中执行的select语句返回的结果 转换为字符串

热度:86   发布时间:2016-04-24 09:11:31.0
如何将 触发器中执行的select语句返回的结果 转换为字符串
在对表里面的数据进行更新的时候 将该记录更新前所有字段 与更新后的所有字段 转换为字符串后存放到另外一张表中,
怎么来实现这个需求?
求帮忙。
------解决思路----------------------
编写触发器能使用的语句同存储过程差不多, 转换就用 Convert 函数啊.
------解决思路----------------------
数据存储的时候,还是尽量避免压缩,不然后期提取,加工很麻烦。
你直接备份数据行好了。

------解决思路----------------------

CREATE TRIGGER t_test FOR UPDATE ON tb
AS
 BEGIN
  --插入更新前的数据
  INSERT INTO #TB2(id,内容1)
  SELECT id,内容 FROM INSERTED a WHERE NOT EXISTS (SELECT * FROM DELETED b INNER JOIN a ON a.id=b.id AND a.内容=b.内容)

  --插入更新后的数据
INSERT INTO #TB2(内容2)
  SELECT 内容 FROM INSERTED a WHERE  EXISTS (SELECT * FROM DELETED b INNER JOIN a ON a.id=b.id AND a.内容=b.内容)
 END

我的思路是INSERTED是记录更新前的数据库表,DELETED是更新后的数据库表,结合EXISTS关联二个表插入更新前和更新后的数据进行对比,可能语法还需要更正,因为没有测试的环境
  相关解决方案