SQL Server:如何更新位置(x,y)处的单元格值

SQL Server:如何更新位置(x,y)处的单元格值,sql,sql-server,Sql,Sql Server,SQL Server问题: 我有一张有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中没有隐式行顺序的概念

SQL Server问题:

我有一张有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
中没有隐式行顺序的概念

除非您定义了排序条件(
上例中的列
),否则没有第n行

在本表中:

col1 col2
1    2
2    1
,按
col1
排序时,行
(1,2)
位于第一位,按
col2
排序时,行
位于第二位

请注意,在
SQL
中没有隐式行顺序的概念

除非您定义了排序条件(
上例中的列
),否则没有第n行

在本表中:

col1 col2
1    2
2    1

,当按
col1
排序时,行
(1,2)
是第一行,当按
col2
排序时,行
(1,2)
是第二行。首先,添加主键,无论您是否已经有候选键(甚至可能是复合键)或选择使用代理键。然后,您可以在where子句中使用它作为标准。

首先,添加主键,无论您是否已经有候选键(甚至可能是复合键)或选择使用代理键。然后,您可以在where子句中使用该条件。

因为他对where子句没有任何条件,所以我假设表中有相同的行。如果这是真的,那么当更新运行两次(并且月球和行星被错误对齐)时,运行此更新可能会更新不同的行。我相信你知道这一点,我也知道在实践中这很可能不会发生,但理论上可能会发生
@Lieven
:这只适合作为第一次查询:)在
更新
成功后,
@op
获得一个新条件:
Mycl='newvalue'
下一次
更新
应该使用它。@Quassnoi:哦,看在上帝的份上,承认你刚刚想出了那个条件,不是吗!:)
@Lieven
:就是忍不住!由于where子句没有任何条件,我假设表中有相同的行。如果这是真的,那么当更新运行两次(并且月球和行星被错误对齐)时,运行此更新可能会更新不同的行。我相信你知道这一点,我也知道在实践中这很可能不会发生,但理论上可能会发生
@Lieven
:这只适合作为第一次查询:)在
更新
成功后,
@op
获得一个新条件:
Mycl='newvalue'
下一次
更新
应该使用它。@Quassnoi:哦,看在上帝的份上,承认你刚刚想出了那个条件,不是吗!:)
@Lieven
:就是忍不住!