Поворот данных в SQL и обновление их в таблице назначения - PullRequest
0 голосов
/ 15 апреля 2020

Я работаю над процедурой хранения, где мне нужно обновить записи из таблицы 1 в таблицу 2.

Таблица1: содержит следующие 4 столбца


    ----------------------------------------------
    | ID |    TableName   |  ColumnName  | Value |
    ----------------------------------------------
    | 1  |  [UserDetails] | [FinalScore] |  92   |
    | 2  |  [UserDetails] | [FinalScore] |  89   |
    | 3  |  [UserDetails] | [FinalScore] |  65   |
    | 4  |  [UserDetails] | [FinalScore] |  91   |
    | 5  |  [UserDetails] | [FinalScore] |  76   |
    | 1  |[EmployeeDetail]| [ScoreData]  |  0.91 |
    ----------------------------------------------

Таблица UserDetails


    -----------------------------------------------------------
    | UserID |    UserName    |    ContactNo     | FinalScore |
    -----------------------------------------------------------
    |   1    |  John G        | +13288992342     |     0      |
    |   2    |  Leonard J     | +14581232342     |     0      |
    |   3    |  Max R         | +17123992342     |     0      |
    |   4    |  Robert H      | +15688992122     |     0      |
    |   5    |  Jimmy L       | +1328996782      |     0      |
    -----------------------------------------------------------

Необходимо загрузить все данные из таблицы1 в соответствующую таблицу назначения для большого количества записей данных (от 30000 до 60000).

Таблица1 содержит идентификатор (из столбца идентификаторов в таблице1) и FinalScore (из ColumnName Column в table1) в целевой таблице (из TableName Column в table1), в которую необходимо загрузить значение (из Value Column в table1).

Конечный результат таблицы UserDetails после выполнения SP:


    -----------------------------------------------------------
    | UserID |    UserName    |    ContactNo     | FinalScore |
    -----------------------------------------------------------
    |   1    |  John G        | +13288992342     |     92     |
    |   2    |  Leonard J     | +14581232342     |     89     |
    |   3    |  Max R         | +17123992342     |     65     |
    |   4    |  Robert H      | +15688992122     |     91     |
    |   5    |  Jimmy L       | +1328996782      |     76     |
    -----------------------------------------------------------

Я не уверен, как загрузить данные из "table1" в таблицу назначения (таблицу userdetails) для массовых данных в качестве запроса на обновление в al oop занимает очень много времени, чтобы завершить.

1 Ответ

0 голосов
/ 15 апреля 2020

Дело не в том, что вам нужно, а в простом объединении:

select 
  a.userid, a.contactno, b.finalscore
from UserDetails a
join table1 b on a.id = b.id

в качестве альтернативы, если вы хотите обновить старую таблицу без создания новой, вы можете update join

SQL обновить запрос с помощью объединений

...