首页 > 解决方案 > 如何在不使用触发器的情况下在 sql server 中获取更新的列名

问题描述

我有一个名为 user 的表,其中包含 FirstName、LastName、Location、City 等列我想做的是在用户更新他的信息之后,我想跟踪哪些是用户更新的列而不创建任何触发器。对于更新信息,我使用了存储过程。我想在不创建触发器的情况下返回更新的字段列名。

CREATE PROCEDURE [UpdateInfo]  
(@FirstName NVARCHAR(20),  
 @LastName NVARCHAR(1000),  
 @Location NVARCHAR(1000),  
 @City NVARCHAR(400)
)  
AS  
BEGIN  
IF EXISTS(SELECT 1 FROM [user] WHERE FirstName = @FirstName)  
BEGIN  
UPDATE [user]   
SET FirstName = ISNULL(@FirstName, FirstName),  
  LastName = ISNULL(@LastName, LastName),  
  Location = ISNULL(@Location, Location),  
  City = ISNULL(@City, City)
  WHERE  FirstName = @FirstName  
END  
END

标签: sql-server

解决方案


推荐阅读