小编spe*_*741的帖子

关于执行更新的存储过程的哲学:“粒度”更新方法是否足够?

我正在着手一个大型项目,并且对存储过程有一般的询问。

假设我有一张User桌子。

UserKey IDENTITY NOT NULL PRIMARY KEY
FirstName nvarchar(50)NOT NULL
LastName nvarchar(50) NOT NULL
Email nvarchar(50) NOT NULL
Birthdate date NULL
EffectiveFrom datetimeoffset NOT NULL
EffectiveThru datetimeoffset NULL
Run Code Online (Sandbox Code Playgroud)

实际上,这里还有更多的领域,但为了简洁起见,我已经将其简化为基础知识。

现在,我面临着创建存储过程以允许此表的基本 CRUD 功能的问题。

插入过程非常简单。

usp_INSERT_User

CREATE PROCEDURE [dbo].[usp_INSERT_User]
(
    --@UserKey BIGINT,
    @FirstName NVARCHAR(50),
    @LastName NVARCHAR(50),
    @Email NVARCHAR(50),
    @BirthDate DATE = NULL,
    @EffectiveFromDtTm DATETIMEOFFSET(7),
    @EffectiveThruDtTm DATETIMEOFFSET(7) = NULL,
)
Run Code Online (Sandbox Code Playgroud)

我的主要问题是我应该如何编写更新程序。

由于可以有非常细粒度的更新,我是否应该为每个细粒度更新创建一个更新存储过程?

例如,假设我只想在为用户处理完经过验证的电子邮件更新后更新用户的电子邮件,我会编写一个带有一个参数的 sproc 吗?

usp_UPDATE_UserEmail @NewEmail

如果用户更新了他们的个人资料,我可以编写一个 sproc,如:

usp_UPDATE_User @UserKey, @FirstName, @LastName, @Email, @Birthdate

因此,为了涵盖我最常见的更新操作,我最终可能会使用一些 sproc 来涵盖更新User …

stored-procedures update

2
推荐指数
1
解决办法
286
查看次数

标签 统计

stored-procedures ×1

update ×1