SQL Server: строки Concat / или столбцы и результат обновления до столбца - PullRequest
0 голосов
/ 26 февраля 2019

Следующая ситуация:

У меня динамически (по столбцам) построенная таблица ... например:

 Rowid UniqueID Name Birthdate Town ....
   1     null    Joe  Jan-93    Cologne
   2     null    Nick Okt-00    London

Я создаю эту таблицу TempTable для создания уникального ID для всех данных в моемБаза данных TempTable была создана двумя циклами, которые проходят через всю мою таблицу и столбцы базы данных и копируют все данные первичного ключа в эту таблицу TempTable.

Моя цель - обновить столбец UniqueID из моей таблицы TempTable, указав соответствующие значения данных ... например:

    UniqueID
  JoeJan-93Cologne
  NickOkt-00London

У вас есть идея, как обновить UniqueID?

Я имею в виду следующее:

Loop 1 going through all Tables
 Select Table of Schema
Loop 2 going through all Columns of Table
 Select Column of Schema

 Copy Column to my Temp 

 -- here an update  like ... set UniqueID = select concat(UniqueID, @Column) 
 -- from @table where RowID = RowID
End loop 2 
end loop 1 

Возможно ли это или мне нужно открыть третий цикл, который проходит по всем строкам и значениям concat?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Вы можете использовать CONCAT() с оператором UPDATE, никакой цикл не требуется:

UPDATE t
     SET UniqueID = CONCAT(Name, Birthdate, Town);
0 голосов
/ 26 февраля 2019

Вы можете попробовать это

Update <YourTableName>
set UniqueId = ISNULL(Name, '') +  ISNULL(Cast(Birthdate as Varchar(10), '') + ISNULL(Town, '')
...