2012-01-12 141 views
1

在我的网站上,我创建了一个保存新用户信息的过程(xp_SaveInfo),如果已经存在,他们可以更新。但现在我们需要知道谁是谁更新以及什么是他们更新了。为此,我创建了一个单独的表,此表需要在更新数据时使用相同的过程(xp_SaveInfo)进行填充。因此,我想比较并将数据保存到新参数中,并且此参数需要插入到表中。在SQL Server中使用StoredProcedure保存历史记录

回答

1

使用SUSER_SNAME()GETDATE()功能给你知道谁的能力和现在正在运行当前脚本,这样的事情时:

CREATE TABLE LogTable(When datetime, Who nvarchar(100), What nvarchar(max)) 
GO 

UPDATE YourTable SET 
    DataField = @Parameter 
OUTPUT GETDATE(), SUSER_SNAME(), @Parameter, INSERTED.[OtherFieldsYouWantFromTable] INTO LogTable 
WHERE DataField <> @parameter 
+0

感谢奥列格,但我想更新的数据存储到一个separete表 – 2012-01-12 12:22:05

+0

那究竟它是什么 - 你看到 - 我创建全新的表LogTable并写入它 – 2012-01-12 12:24:27

+0

我需要修改的数据保存到一个tabel,同时保存此更新的数据保存在我的Logtable中,为此我们需要比较,如果@parameters包含修改的数据或不if真正需要将其保存到LogTable中。 – 2012-01-12 12:32:20

相关问题