--DROP TABLE T1
Create table T1 (KEYOLD NVARCHAR(10), VALUE NVARCHAR(10), PRIMARY KEY(KEYOLD) )
insert into t1(keyold, value) values ('*1*','1')
insert into t1(keyold, value) values ('*2*','2')
insert into t1(keyold, value) values ('*3*','3')
--DROP TABLE T2
CREATE table T2(IDREGISTRO INT, KEYOLDFK NVARCHAR(10), VALOR NVARCHAR(10), PRIMARY KEY (IDREGISTRO))
INSERT INTO T2(IDREGISTRO ,KEYOLDFK, VALOR) VALUES (1,'*1*','TXT')
INSERT INTO T2(IDREGISTRO ,KEYOLDFK, VALOR) VALUES (2,'*2*','TXT')
INSERT INTO T2(IDREGISTRO ,KEYOLDFK, VALOR) VALUES (3,'*3*','TXT')
ALTER TABLE T1 ADD NEWKEY NVARCHAR(10)
UPDATE T1 SET NEWKEY = KEYOLD
UPDATE T1 SET NEWKEY = '*NEW1*' WHERE KEYOLD = '*1*'
UPDATE T1 SET NEWKEY = '*NEW2*' WHERE KEYOLD = '*2*'
UPDATE T1 SET NEWKEY = '*NEW3*' WHERE KEYOLD = '*3*'
UPDATE T2
SET T2.KEYOLDFK = T1.NEWKEY
FROM T2 LEFT JOIN T1 ON T2.KEYOLDFK = T1.KEYOLD
SELECT * FROM T2