【发布时间】:2019-02-26 15:44:43
【问题描述】:
以下情况:
我有一个动态(按列)构建的表...例如:
Rowid UniqueID Name Birthdate Town ....
1 null Joe Jan-93 Cologne
2 null Nick Okt-00 London
我正在构建这个 TempTable 来为我的数据库中的所有数据创建一个 uniqueID TempTable 是由两个循环创建的,它们贯穿我所有的数据库表和列,并将所有主键数据复制到这个 TempTable。
我的目标是使用数据的连续值更新我的 TempTable 中的 UniqueID 列...例如:
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
这可能吗 还是我必须打开第三个循环,它遍历所有行和连接值?
【问题讨论】:
-
这尖叫着成为xy problem。为什么您认为每个表中的每一行都需要具有数据库范围内的唯一值?这有一种非常强烈的代码气味。
-
我正在编写一个脚本来比较“相等”数据库模式的 xxx,但没有任何唯一值......所以我构建了一些(......我对 except 和 intersect 不太满意)
-
您正在尝试比较模式或表中的数据?如果比较数据,跨数据库查询似乎会简单上亿倍。
-
@SeanLange :我的问题是,我需要比较数千个表和架构......你有什么想法(我不是那个专业开发人员)
-
我不知道您要比较什么。两个数据库上的表结构是否相同?您是否想要任一数据库中不在另一个数据库中的所有数据?
标签: sql sql-server sql-update rows concat