-1
Select Stackoverflow.* From Stackoverflow Where GeneralId = 1000;

上記の sql は、次のような 3 つのレコードを返します。

Id     GeneralId    Name             StateId
1       1000        stack             null
2       1000        stackover         null
3       1000        stackoverflow     null

返されたレコードの StateId を更新したい。

一方で

上記の例のように、レコード数が 1 の場合もあれば 3 の場合もあります。

Select Stackoverflow.* From Stackoverflow Where GeneralId = 1001;

上記の sql ステートメントは、1 つのレコードのみを返します。

Id     GeneralId    Name        StateId
8       1001        stck         null

では、これらの返されたレコードを更新するにはどうすればよいですか。0からレコード数までのループとそのループが必要だと思います

私は疑似コードを書こうとしています。

Update    Stackoverflow
Set StateId = 1
where = "loop as I mentioned should be come?"

ではない?何か案が。

ありがとうございました。

4

5 に答える 5

1
Update    Stackoverflow
Set StateId = 1
where Id in (
//Your query if you want to customize
Select Id From Stackoverflow Where GeneralId = 1001;
)
于 2012-09-03T14:59:02.670 に答える
1

次のようなSQL Server のupdate ... from構文を使用することを検討してください。

update  tbl1
set     stateid = 1
from    ... your query here ...

例えば:

update  tbl1
set     stateid = 1
from    Stackoverflow as tbl1
where   tbl1.GeneralId = 1000
于 2012-09-03T14:59:44.020 に答える