在删除MYSQL存储过程之前获取行数据

时间:2015-01-16 10:38:04

标签: sql-server stored-procedures transactions

我正在构建一个MSSQL存储过程来从表中删除一行,但我希望在删除之前将该行的数据作为存储(审计跟踪)的分隔字符串。

我最好能做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以使用与删除相同的条件从表中选择列,将值连接到字符串中。您几乎肯定需要使用CAST or CONVERT将非字符数据更改为字符串,并且任何可以为空的列都需要使用类似ISNULL(MyColumn,'')的处理。例如;

DECLARE @s varchar(max)
SELECT @s = Col1 + ',' + 
            cast(Col2 as varchar(32)) + ',' + 
            isnull(cast(Col3 as varchar(32)), '') 
FROM
   MyTable
WHERE
   ID = @IDToDelete

希望这有帮助,

里斯