Sql server SQL Server:从另一个表中复制行并替换第一列first char和多个其他列

Sql server SQL Server:从另一个表中复制行并替换第一列first char和多个其他列,sql-server,tsql,insert,set,Sql Server,Tsql,Insert,Set,我想复制同一个表中的一行,并更改复制行的第一个单元格编号(如1到9),然后将其他单元格的值与另一个表中的值相乘 表1: uniqueID ID2 ID3 Number Number ------------------------------- 199000 1 2 20 20 MultiplyN ID2 ID3 ----------------- 5 1 2 uniqueID ID2 ID3 Number Number ---------------

我想复制同一个表中的一行,并更改复制行的第一个单元格编号(如1到9),然后将其他单元格的值与另一个表中的值相乘

表1

uniqueID ID2 ID3 Number Number
-------------------------------
199000   1   2   20     20
MultiplyN ID2 ID3
-----------------
5         1   2
uniqueID ID2 ID3 Number Number
-------------------------------
199000   1   2    20     20
999000   1   2   100    100
表2

uniqueID ID2 ID3 Number Number
-------------------------------
199000   1   2   20     20
MultiplyN ID2 ID3
-----------------
5         1   2
uniqueID ID2 ID3 Number Number
-------------------------------
199000   1   2    20     20
999000   1   2   100    100
在插入、设置和乘法之后

表1

uniqueID ID2 ID3 Number Number
-------------------------------
199000   1   2   20     20
MultiplyN ID2 ID3
-----------------
5         1   2
uniqueID ID2 ID3 Number Number
-------------------------------
199000   1   2    20     20
999000   1   2   100    100
这是我的程序,只是复制和更改第一个字母,但它没有任何作用

我做错了什么

ALTER PROCEDURE [dbo].[tableInsertUpdate]  
    (@kulcs nvarchar(50),
     @uzlev int,
     @uzlho int,
     @uzltip int,
     @uzlnev char,
     @belfarb int,
     @exparb int,
     @egyarb int,
     @arbjova int,
     @allvalt int,
     @anyagkolt int,
     @energkolt int,
     @elabe int,
     @kozvetitettszolg int,
     @igbevettagjell int,
     @igenybevettszolg int,
     @berkoltsjar int,
     @egyebszem int,
     @egyebraf int,
     @koltsterh int,
     @ecs int,
     @berlvhep int,
     @berlvheszk int,
     @mfee int,
     @koltscostcent int,
     @penzeredvh int,
     @penzeredkulso int,
     @arfegyenleg int,
     @rendkered int,
     @letszam int,
     @bérelt_munkaerő int,
     @bérelt_munkaerők int)
AS
    UPDATE uzlag_2006_copy
    SET kulcs = '9' + SUBSTRING (@kulcs, 1, len(kulcs) - 1)
    WHERE kulcs = @kulcs

    INSERT INTO uzlag_2006_copy (kulcs, uzlev, uzlho, uzltip, uzlnev, belfarb,
                                 exparb, egyarb, arbjova, allvalt, anyagkolt,
                                 energkolt, elabe, kozvetitettszolg, 
                                 igbevettagjell, igenybevettszolg,
                                 berkoltsjar, egyebszem, egyebraf,
                                 koltsterh, ecs, berlvhep, berlvheszk,
                                 mfee, koltscostcent, penzeredvh,
                                 penzeredkulso, arfegyenleg, rendkered,
                                 letszam, bérelt_munkaerő, bérelt_munkaerők)
    VALUES (@kulcs, @uzlev, @uzlho, @uzltip, @uzlnev, @belfarb, @exparb,
            @egyarb, @arbjova, @allvalt, @anyagkolt, @energkolt, @elabe,
            @kozvetitettszolg, @igbevettagjell, @igenybevettszolg,
            @berkoltsjar, @egyebszem, @egyebraf, @koltsterh, @ecs,
            @berlvhep, @berlvheszk, @mfee, @koltscostcent, @penzeredvh,
            @penzeredkulso, @arfegyenleg, @rendkered, @letszam,
            @bérelt_munkaerő, @bérelt_munkaerők)

我想你想要这样的东西:

insert into table1 (uniqueID, ID2, ID3, Number1, Number2)
    select stuff(uniqueID, 1, 1, '9')
           t1.ID2, t1.ID3,
           Number1 * t2.MultiplyBy, t1.Number2 * MultiplyBy
    from table1 t1 join
         table2 t2
         on t1.id2 = t2.id2 and t1.id3 = t2.id3;  -- Are both keys needed?
我提出了一个解决方案:


使用join转换的第一个字符从表1和表2插入临时表,并乘以数字,然后使用新数据插入原始表

我不知道您对问题的解释和示例数据与代码有什么关系。似乎没有匹配的。