3

テーブルを作成します

CREATE TABLE tbl
(
ID int,
FirstName nvarchar(50),
LastName nvarchar(50)
)

ストアド プロシージャがある場所

UPDATE tbl
SET FistName = @firstName  , LastName = @lastName
WHERE ID = @ID

今、ストアドプロシージャを呼び出すと、 exec myProc 1,'John',''私が書いた列だけを更新したいです。たとえば、テーブルに値がある場合:

ID : 1
FirstName: Bob
LastName : Brown

exec の後は、

ID : 1
FirstName: John
LastName : Brown
4

1 に答える 1

8

これを試して:

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

通常、NULL と空の文字列値を正しく管理します。

于 2013-07-30T13:46:02.723 に答える