【问题标题】:UPDATE within a table from table name saved in the column [duplicate]从保存在列中的表名更新表[重复]
【发布时间】:2014-09-26 18:50:00
【问题描述】:

我有一个小问题,但我相信它并不复杂。

很难找到关键词来描述问题并找到解决方案

我想使用此表中的参数更新表中的列,以便查询其他表。

示例:我有 Header + 2 行

IDSOURCE, IDCIBLE, IDENTIFIANT, TABLE_CIBLE, NOM_ATTRIBUT, NOM_CHAMP_IDENTTIFIANT, NOM_CIBLE 
--------------------------------------------------------------------------------------------    
DMT_1000, DMT_1000, 1000, [dictionnaire].[dbo].[TABLE_CHAMPS_DATAMART], NOM_CHAMP_DMT, IDENTIFIANT_CHAMP_DATAMART, NULL 
DMT_1001, DMT_1001, 1001, [dictionnaire].[dbo].[TABLE_CHAMPS_DATAMART], NOM_CHAMP_DMT, IDENTIFIANT_CHAMP_DATAMART, NULL

我想用类似的东西更新每一行的最后一列:

UPDATE
    Table
SET
    Table.NOM_CIBLE = SELECT table.NOM_ATTRIBUT FROM table.TABLE_CIBLE WHERE table.NOM_CHAMP_IDENTTIFIANT = table.IDCIBLE
FROM
    Table

不知道是否清楚。

感谢您的帮助。

【问题讨论】:

  • 关键词是“从选择中更新”stackoverflow.com/questions/2334712/…
  • 这里的另一张桌子是什么?
  • 另一个表包含在 TABLE_CIBLE 属性中,但它可以从 1 行更改为其他行
  • @Hystic:您可能需要运行游标并从保存在列中的表中获取值并在动态 sql 中使用它
  • 您需要求助于dynamic sql 才能动态更改表名。

标签: sql sql-server


【解决方案1】:

这听起来像是您可以使用光标的情况。查看这个 StackOverflow 问题How to update a column fetched by a cursor

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2016-05-30
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多