2017-12-11 7 views
0

実際のレコードを更新しないで、私は2つのレコードを更新するために、クエリの下に実行しようとしているバージョンで、2014年MSSQLの更新クエリは、行数を返しますが、

を実行し、SQL Serverのデータベースに個別の問合せの下に実行しています。スクリプトを実行すると、rowcount = 2が返されますが、レコードは常に古い値を保持します。

表にトリガーが定義されていません。私の更新スクリプトで出力節を追加し、驚いたことに、挿入されたテーブルの列の古い値を返しています。

どんなに私はこの種の問題を見ています、それは常に、現在の列のテーブルに格納された出力として1を返し、これまで「IsInsertStatus」

まず時刻を更新していますどのような値

update MemberDataImport set IsInsertStatus=3579346798476 
where LastName is null; 

update MemberDataImport set IsInsertStatus=3579346798476 
output inserted.IsInsertStatus 
where LastName is null; 

update MemberDataImport set IsInsertStatus=2 
output inserted.IsInsertStatus 
where LastName is null; 

update MemberDataImport set IsInsertStatus=100 
output inserted.IsInsertStatus 
where LastName is null; 

+0

スクリプトの最後にCOMMIT TRANSACTIONを入れてみましたか? –

+0

int型の値を挿入できない場合は、 'IsInsertStatus'の範囲を調べてください。3579346798476 – Malainine

+0

なぜスキーマを使用しないのですか? 2つのテーブルMemberDataImportを持つことができます。一方はdboスキーマに、もう1つはユーザーのデフォルトスキーマにあります。したがって、1つのテーブルを更新してから別のテーブルを確認します – sepupic

答えて

0

関係なく、私はtは常に現在の列のテーブルに格納されている出力 として1を返し更新していますどのような値がここにIsInsertStatus "

はREPROではありません:

declare @MemberDataImport table (IsInsertStatus bit, lastname varchar(100)) 
insert into @MemberDataImport (IsInsertStatus) values (10) 

update @MemberDataImport set IsInsertStatus=2 
output inserted.IsInsertStatus 
where LastName is null; 

これは、IsInsertStatusがbitであるためです。

関連する問題