0

テーブル内のデータを更新するストアド プロシージャを作成しました。次のようになります。

UPDATE dbo.sample
SET column_a += @value
WHERE id = @id

私が見つけたのは、最初に合計なしで更新することです。結果は次のコマンドのようになります。

UPDATE dbo.sample
SET column_a = @value
WHERE id = @id

SET column_a = column_a + @value適切に更新するには、使用する必要があります。SQL Server が左側に代入する前に右側の式を合計しない理由を知りたいです。変数でテストしましたが、動作します。この場合だけでは動作しません。

私が現在使用しているコマンドは次のとおりです。

UPDATE dbo.sample
SET column_a = column_a + @value
WHERE id = @id
4

2 に答える 2

1

次のスクリプトを試しました。それは私にとってはうまくいっています。

これを一度試してみることをお勧めします。それでも問題が解決しない場合はお知らせください。

create table #temp1(id int, prodName varchar(max))

insert into #temp1 values(1,'a')
insert into #temp1 values(2,'b')
insert into #temp1 values(3,'c')
insert into #temp1 values(4,'d')

select * from #temp1

declare @var varchar(1);
set @var = '5'; --note that i even tried declaring it as a varchar. it still works!
update #temp1
set id +=@var

select * from #temp1

drop table #temp1
于 2013-02-24T13:02:37.913 に答える
0

column_a += @valueは、SQL Server 2008 のcolumn_a = column_a + @valueと同じです。

最初だけ短いです

于 2013-02-24T13:24:27.880 に答える