0

SQL Server に次のようなテーブルがあります。

varID(PK)    dataID(PK)  is_used
A            1           0
B            1           0

varID/dataID次に、データを読み込んで、コンボが存在する場合は is_used を 1 に更新し、そうでない場合は追加します。

したがって、これらのvarID/dataIDコンボを挿入/更新する必要があります。

varID(PK)    dataID(PK)  
B            1           
C            1

したがって、更新されたテーブルは次のようになります。

varID(PK)    dataID(PK)  is_used
A            1           0
B            1           1
C            1           1

これを行う最も簡単な方法は何ですか? ストアドプロシージャで行います。

4

1 に答える 1

5

is_usedプロシージャーは、与えられたキーを更新しようとします。失敗した場合は、新しい行を挿入します。is_used のデフォルト値として 0 を指定したことに注意してください - (C, 1) の is_used = 1 は不注意だと思います。

create proc AddVarDataCombo (@varID varchar(100), @dataID int)
as
   set nocount on

   update ATable
      set is_used = 1
    where varID = @varID
      and dataID = @dataID

   if @@rowcount = 0
   begin
      insert into ATable 
           values (@varID, @dataID, 0)
   end
于 2012-04-11T23:03:30.397 に答える