2012-03-30 5 views
1

に一度テーブル内の複数の変更を行うために、私は、などaccountno, opendate, name, address,私は特定の値にいくつかの口座番号の開始日を変更したいどのようにSQL Serverの

のような列を含むテーブルindexを持っています。

どうすればこのことができますか?

意味、私は、01.01.1990にいくつかの口座番号(100以上)の口座を入れなければなりません。

ただし、口座番号は異なります。どのようにしてこれを単一のクエリで行うことができますか?

+3

質問は以下で正しく答えられます。しかし、実装する前に、テーブルの「インデックス」以外の名前を選択することをお勧めしますか? –

答えて

3

この作品のようなものはありませんか?

UPDATE 
    MyIndexTable 
SET 
    opendate = <desired date> 
WHERE 
    accountno IN (
    a1, a2, ..., a100 
); 

アカウント番号が閉鎖式を満たしていない場合は、100個のすべてを書き留めておく必要があります。

0

これを行う1つの方法は、カンマで区切ったリスト、または変更したいレコードのIDを持つテーブルを使用することです(すべて同じ値に設定した場合のみ有効です)。コンマは、リストを区切りに:

Update index 
    SET opendate = '1/1/1900' 
WHERE accountno IN (123, 456) 

また、あなたが同じ日にすべてのレコードを設定している場合、クエリは再び

update index 
    set opendate = '1/1/1900' 
WHERE accountno IN (SELECT accountno from acctnos_table) 

この作品だけになり、テーブルにIDを読み込むことができます。

関連する問題