0

テーブルを更新するストアドプロシージャがあります:

UPDATE myTbl
SET [first_name] = @first_name,  
    [second_name] = @second_name,  
    [faculty] = @faculty,
    [age] = @age
    WHERE [id] = @id 

ストアド プロシージャを呼び出し、すべてのパラメーターを渡したときに、更新が機能します。ここでテーブルを更新したいので、更新するすべての値を入力しないと、更新され、導入したものと導入されていないものだけが同じままでした。

4

3 に答える 3

5
UPDATE myTbl
SET [first_name] = IsNull(@first_name, first_name),  
    [second_name] = IsNull(@second_name, second_name),  
    [faculty] = IsNull(@faculty, faculty),
    [age] = IsNull(@age, age),
    WHERE [id] = @id 
于 2013-06-17T12:50:43.990 に答える
3
UPDATE myTbl
SET
    [first_name] = ISNULL(@first_name,  [first_name])
    , [second_name] = ISNULL(@second_name,  [second_name])
    , [faculty] = ISNULL(@faculty, [faculty])
    , [age] = ISNULL(@age, [age])
WHERE [id] = @id 
于 2013-06-17T12:50:53.070 に答える
0

更新を実行する直前に、SELECT ステートメントを実行してテーブルからすべての値を抽出できます。

また、ストアド プロシージャに渡されたすべての値を確認し、null の場合は、選択した値を更新ステートメントで使用します。

于 2013-06-17T12:51:07.823 に答える