在 SQL Server 2008 中更改行

Posted

技术标签:

【中文标题】在 SQL Server 2008 中更改行【英文标题】:Altering rows in SQL Server 2008 【发布时间】:2013-12-04 00:12:23 【问题描述】:

我有一个有 4 列的 table1:ID, TIME, QUANTITY, STATUS。目前有 50 行填充了字段 ID, TIMESTATUS,每行的 STATUS 列是 NULL

我有另一个 table2 有 2 列:IDSTATUS。该表有 150 行,其中每个 ID 都有一个对应的 STATUS 值。

对于table1中的每个ID,我想在table2中找到ID,在table2中找到对应的STATUS值,然后根据对应的ID将该STATUS值插入到合适的行中表 1 中的值。

我觉得这应该相当容易,但我尝试过的所有 3 种方法都失败了。任何帮助表示赞赏,谢谢!

【问题讨论】:

【参考方案1】:

加入表格并更新:

UPDATE table1
SET
    table1.STATUS = table2.STATUS
FROM
    table1 JOIN table2 ON table1.ID = table2.ID

只有当 ID 值已经存在于 table1 中时,这才会明显起作用。

【讨论】:

感谢您的回复。 ID 值确实存在于 table1 中。当我运行它时,我得到消息 4104“无法绑定多部分标识符“t1.STATUS”。”有任何想法吗?谢谢! 是的。只需三次检查所有名称 我很确定(现在无法检查)UPDATE 子句不接受表别名,所以上面的查询应该是UPDATE table1 SET STATUS = t2.STATUS FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.ID = t2.ID; 谢谢@Greenstone,刚刚去掉了表别名。反正这里不需要别名。 做到了。我在正确的语法上跳来跳去一段时间,并不能完全确定它。谢谢大家欣赏!

以上是关于在 SQL Server 2008 中更改行的主要内容,如果未能解决你的问题,请参考以下文章

pyqt - 在 TableView 中更改行~单元格颜色

安装sql server 2008不能更改安装路径吗

SQL Server R2 2008中的SQL Server Management Studio 阻止保存要求重新创建表的更改问题的设置方法

sqlserver 2008问题!

如何在SQL Server 2008 Express中更改sa密码?

Sql Server2008数据类型更改不能保存?