>>>CREATE CURSOR cur (pk int autoinc, xvalue char(10), fkPlans int) >>>CREATE CURSOR pln (pk int autoinc, xvalue char(10)) >>> >>>INSERT INTO cur (xvalue, fkPlans) VALUES ('', 2) >>>INSERT INTO cur (xvalue, fkPlans) VALUES ('', 4) >>>INSERT INTO cur (xvalue, fkPlans) VALUES ('', 6) >>>INSERT INTO cur (xvalue, fkPlans) VALUES ('', 8) >>> >>>INSERT INTO pln (xvalue) VALUES ('ONE') >>>INSERT INTO pln (xvalue) VALUES ('TWO') >>>INSERT INTO pln (xvalue) VALUES ('THREE') >>>INSERT INTO pln (xvalue) VALUES ('FOUR') >>>INSERT INTO pln (xvalue) VALUES ('FIVE') >>>INSERT INTO pln (xvalue) VALUES ('SIX') >>>INSERT INTO pln (xvalue) VALUES ('SEVEN') >>> >>>UPDATE cur SET xvalue = pln.xvalue from pln WHERE pln.pk = cur.fkplans >>> >>>* or >>> >>>UPDATE cur SET xvalue = pln.xvalue FROM pln INNER JOIN cur ON cur.fkPlans = pln.pk >>> >>>>>
>CREATE TABLE #cur (pk int IDENTITY(1,1), xvalue char(10), fkPlans int) >CREATE TABLE #pln (pk int IDENTITY(1,1), xvalue char(10)) > >INSERT INTO #cur (xvalue, fkPlans) VALUES ('', 2) >INSERT INTO #cur (xvalue, fkPlans) VALUES ('', 4) >INSERT INTO #cur (xvalue, fkPlans) VALUES ('', 6) >INSERT INTO #cur (xvalue, fkPlans) VALUES ('', 8) > >INSERT INTO #pln (xvalue) VALUES ('ONE') >INSERT INTO #pln (xvalue) VALUES ('TWO') >INSERT INTO #pln (xvalue) VALUES ('THREE') >INSERT INTO #pln (xvalue) VALUES ('FOUR') >INSERT INTO #pln (xvalue) VALUES ('FIVE') >INSERT INTO #pln (xvalue) VALUES ('SIX') >INSERT INTO #pln (xvalue) VALUES ('SEVEN') > >UPDATE #cur SET xvalue = #pln.xvalue > from #pln >WHERE #pln.pk = #cur.fkplans > >SELECT * FROM #cur > >DROP TABLE #cur >DROP TABLE #pln >I think it's the old type of JOIN syntax, but to me personally it's harder to read / understand, than the other variation.