Geo*_*VIP 3 sql sql-server stored-procedures
我创建表
CREATE TABLE tbl
(
ID int,
FirstName nvarchar(50),
LastName nvarchar(50)
)
Run Code Online (Sandbox Code Playgroud)
有存储过程在哪里
UPDATE tbl
SET FistName = @firstName , LastName = @lastName
WHERE ID = @ID
Run Code Online (Sandbox Code Playgroud)
现在,当我调用我的存储过程时, exec myProc 1,'John',''只想更新我写的那些列.例如,如果我有我的表值:
ID : 1
FirstName: Bob
LastName : Brown
Run Code Online (Sandbox Code Playgroud)
执行后必须是
ID : 1
FirstName: John
LastName : Brown
Run Code Online (Sandbox Code Playgroud)
试试这个:
UPDATE tbl
SET FirstName =
case
when @firstName is null or @firstName = '' then firstName
else @firstName
end,
LastName =
case
when @lastName is null or @lastName = '' then lastName
else @lastName
end
WHERE ID = @ID
Run Code Online (Sandbox Code Playgroud)
一般是正确管理NULL和空字符串值
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |