我有3个表,一个是其他两个的父表。我想分离出一列,将其移至基于FK的子表中。这需要在SQL中完成(没有Studio快捷键)。
我有2张这样的桌子:
TABLE A:
internalID | id | otherdata
============+======+===========
myid | 1 | ...
------------+------+-----------
my2ndid | 2 | ...
------------+------+-----------
1234 | 3 | ...
------------+------+-----------
5678 | 4 | ...
TABLE B:
internalID | FK_toTableA | otherdata
============+===============+===========
NULL | 1 | ...
------------+---------------+-----------
NULL | 2 | ...
TABLE C:
internalID | FK_toTableA | otherdata
============+===============+===========
NULL | 3 | ...
------------+---------------+-----------
NULL | 4 | ...
我想将internalID
从TABLE A
移动或复制到TABLE B
和TABLE C
-基于FK关系,然后从{{1 }}。
结果表应如下所示:
TABLE A
SQL版本:13.0.4001.0
答案 0 :(得分:3)
您可以简单地使用update
语句:
update b
set b.internalID = a.internalID
from b inner join
a
on a.id = b.FK_toTableA;
然后,您可以从表internalId
中删除列a
。
alter table a
drop column internalId;
答案 1 :(得分:1)
Update TableB
set internalId = a.InternalId
from TableA a
where tableB.FK_toTableA = a.Id;
Update TableC
set internalId = a.InternalId
from TableA a
where tableC.FK_toTableA = a.Id;
alter table tableA drop column internalId;