sql-server - 如何在不使用触发器的情况下在 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
解决方案
推荐阅读
- html - 使用 Python 和 Selenium 从图中提取数据
- python - 跨多个 API 调用保留 SSH 会话
- python - 我怎样才能使这个完美平方和函数更有效?
- javascript - 如何在具有私有方法的 Jest 中模拟 http 方法
- android - Android Retrofit,如何阻止同一请求的多个副本
- angular - 如何在移动顶点时重新调整 mxgraph 边缘以使其看起来不奇怪?
- javascript - 表单提交的firebase更新不起作用?
- python - 在 SQLAlchemy 中使用设置器时获取 AttributeError
- python - 使用 conda 或 pip 在 windows 上安装 conda
- c# - 在 C# 中为 SQLite 形成数据结构时遇到问题