0

3 桁または 4 桁の整数を、5 桁の長さの数値が必要なテーブルに挿入しています。転送時に 4 桁の数字の後に 0 を追加し、3 桁の数字の先頭と次の 0 を追加するにはどうすればよいですか?

編集 - これは、次のように定義されたトリガーの一部です。

create trigger Trig on T2 
after insert, update, delete 
as  
  -- So that @@rowcount does not get affected by trigger code     
set NoCount on  
  -- If c3 column participated in update (it most certainly did in insert)
if update(C3)
begin
  -- Insert or update triggered this operation
 if exists (select * from Inserted)
  begin
         insert into P1 (C1, C2, C3)
         select T1.C2, T1.C3, T2.C3 --INFORMATION THAT NEEDS TO BE TRANSFERRED 
         from T1
         -- Inserted is a pseudotable holding inserted/updated data
         inner join inserted T2
         on T1.C1 = T2.C2
         where T2.C4 <> 9 --DETERMINES IF RECORD NEEDS TO BE TRANSFERRED
  end
     else
     -- Separate insert for deleted records
     -- To simplify inserting additional info for deleted records only
     begin
         insert into P1 (C1, C2, C3)
         select T1.C2, T1.C3, T2.C3 --INFORMATION THAT NEEDS TO BE TRANSFERRED
         from T1
      -- deleted is a pseudotable holding deleted/updated data
         inner join deleted T2
         on T1.C1 = T2.C2
         where T2.C4 <> 9 --DETERMINES IF RECORD NEEDS TO BE TRANSFERRED
     end
 end 

T2.C3 をピン番号と見なします

4

2 に答える 2

1

なぜこれを保存する必要があるのですか?それをクエリに追加するか、そうするビューを作成するだけです:

SELECT RIGHT('0' + RTRIM(Number) + '0', 5) FROM dbo.TableName;

もちろん、値をテーブルに入れるのと同じ操作を実行できます (挿入ステートメントを変更するか、DML をあまり制御できない場合はトリガーを使用します)。

于 2012-08-10T17:53:46.653 に答える
0

これは受け入れられますか?

declare @PINs as Table ( PIN Int )
insert into @PINs ( PIN ) values ( 123 ), ( 4321 ), ( 12345 ), ( 5000 )
select Left( Right( '0' + Cast( PIN as VarChar(5) ), 5 ) + '0', 5 )
  from @PINs

問題の説明に従って、PIN値が99より大きい必要があります。

于 2012-08-10T18:31:46.553 に答える