Ker*_*own 5 sql t-sql sql-server
我想有一个存储过程,它将更新表行中的值,具体取决于是否提供了参数.例如,我有一种情况,我想更新所有值,但也有一种情况,我只需要更新两个值.我希望能够只用一个程序来做这个,而不是写两个,这对我来说并不特别有吸引力.我设法提出的最好的是以下内容:
CREATE PROCEDURE dbo.UpdatePerson
@PersonId INT,
@Firstname VARCHAR(50) = NULL,
@Lastname VARCHAR(50) = NULL,
@Email VARCHAR(50) = NULL
AS
BEGIN
SET NOCOUNT ON
UPDATE Person
Set
Firstname = COALESCE(@Firstname, Firstname),
Lastname = COALESCE(@LastName, Lastname),
Email = COALESCE(@Email, Email)
WHERE PersonId = @PersonId
END
Run Code Online (Sandbox Code Playgroud)
我意识到每次都会更新这些值,这并不理想.这是实现这一目标的有效方法,还是可以采用更好的方式?
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |