SQL Server質問:SQL Server:位置(x、y)のセル値を更新する方法
私はappxのテーブルを持っています。既存の1000行と5列
列Yの値を更新するにはどうすればよいですか?
私はどこに鍵や条件がありません。
SQL Server質問:SQL Server:位置(x、y)のセル値を更新する方法
私はappxのテーブルを持っています。既存の1000行と5列
列Yの値を更新するにはどうすればよいですか?
私はどこに鍵や条件がありません。
WITH q AS (
SELECT m.*, ROW_NUMBER() OVER (ORDER BY column) AS rn
FROM mytable m
)
UPDATE q
SET mycol = 'newvalue'
WHERE rn = @Y
SQL
に暗黙行の順序の概念がないことに注意されたいです。
注文条件(上記の例ではcolumn
)を定義しない限り、n'th row
はありません。この表に
:
col1 col2
1 2
2 1
、行(1, 2)
最初にcol1
により注文時、及び第二col2
により注文時。
まず候補キー(複合キーでも可)を既に持っているか、代理キーを使用するかを選択して、主キーを追加します。その後、where句で条件を条件として使用できます。
* * where句の条件がないので、テーブルに同じ行があると仮定します。そうであれば、この更新プログラムを実行すると、更新プログラムが2回実行されたとき(月と惑星の位置がずれている)異なる行が更新される可能性があります。私はあなたが**これを知っていると確信していますし、実際には起こることはほとんどありませんが、理論的にはそうかもしれません。 * * –
しかし、もう一度、それは得られるほど良いものです。 +1 –
'@ Lieven':最初のクエリとしてのみ有効です:)' UPDATE'が成功した後、 '@ op'は新しい条件を取得します:' mycol = 'newvalue''そして次の 'UPDATE'はこれを使って。 – Quassnoi