如何把变量复制到另一个表中

时间:2022-04-16 21:04:17

INSERT INTO UFDATA_002_2017.dbo.bas_part (PartId, InvCode, bVirtual)
SELECT  max(PartId)+1, InvCode, bVirtual
FROM UFDATA_003_2017.dbo.bas_part
WHERE InvCode = '3333'  group  by  InvCode, bVirtual


INSERT INTO UFDATA_002_2017.dbo.bom_parent
( AutoId,BomId,ParentId, ParentScrap, SharingPartId)
SELECT AutoId,BomId, ParentId, ParentScrap, SharingPartId
FROM UFDATA_003_2017.dbo.bom_parent inner join UFDATA_003_2017.dbo.bas_part 
on UFDATA_003_2017.dbo.bom_parent.ParentId =UFDATA_003_2017.dbo.bas_part.PartId
WHERE InvCode ='3333'


我要怎么写才能把bas_part中的partid 复制到bom_parent的parentid中?
我写的插入的parentid肯定是不对的,是直接复制另一个表的partid

15 个解决方案

#1



INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          UFDATA_003_2017.dbo.bas_part.PartId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                ParentId ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

#2


忽略1#,用这个试试
INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          ParentId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                UFDATA_003_2017.dbo.bas_part.PartId ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

#3


引用 2 楼 sinat_28984567 的回复:
忽略1#,用这个试试
INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          ParentId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                UFDATA_003_2017.dbo.bas_part.PartId ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

不对,我要复制 UFDATA_002_2017.dbo.bas_part中的partid值到UFDATA_002_2017.dbo.bom_parent中的parentid。
partid和perentid 是关联字段,因为002.bas_part的partid不是从003中复制过来的,而是取002.bas_part中该字段的最大值+1


懂我的意思吗

#4


要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行

#5


引用 4 楼 sinat_28984567 的回复:
要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行


表bas_parent 的字段parentid要取 UFDATA_002_2017.dbo.bas_part的partid     ,其他字段还是要从UFDATA_003_2017.dbo.bom_parent中取

#6


引用 5 楼 qq_24417173 的回复:
Quote: 引用 4 楼 sinat_28984567 的回复:

要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行


表bas_parent 的字段parentid要取 UFDATA_002_2017.dbo.bas_part的partid     ,其他字段还是要从UFDATA_003_2017.dbo.bom_parent中取

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的

#7


引用 6 楼 sinat_28984567 的回复:
Quote: 引用 5 楼 qq_24417173 的回复:

Quote: 引用 4 楼 sinat_28984567 的回复:

要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行


表bas_parent 的字段parentid要取 UFDATA_002_2017.dbo.bas_part的partid     ,其他字段还是要从UFDATA_003_2017.dbo.bom_parent中取

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

#8


引用 7 楼 qq_24417173 的回复:
我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的

#9


UFDATA_002_2017.dbo.bas_part

引用 8 楼 sinat_28984567 的回复:
Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

#10


引用 9 楼 qq_24417173 的回复:
UFDATA_002_2017.dbo.bas_part

Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

这不是难点……这是表设计或者需求有问题……

#11


引用 10 楼 sinat_28984567 的回复:
Quote: 引用 9 楼 qq_24417173 的回复:

UFDATA_002_2017.dbo.bas_part

Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

这不是难点……这是表设计或者需求有问题……


能通过设置变量 或者空值  去取值吗

#12


引用 11 楼 qq_24417173 的回复:
Quote: 引用 10 楼 sinat_28984567 的回复:

Quote: 引用 9 楼 qq_24417173 的回复:

UFDATA_002_2017.dbo.bas_part

Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

这不是难点……这是表设计或者需求有问题……


能通过设置变量 或者空值  去取值吗

  每次复制的时候时候都是只有一条记录,只要去002中partid的最大值不就可以吗

#13


引用 12 楼 qq_24417173 的回复:
  每次复制的时候时候都是只有一条记录,只要去002中partid的最大值不就可以吗
如果是取最大值可以
INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          ParentId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                ( SELECT    MAX(PartId)
                  FROM      UFDATA_002_2017.dbo.bas_part
                ) ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

#14


第1次:
SELECT  max(PartId)+1, InvCode, bVirtual
 FROM UFDATA_003_2017.dbo.bas_part
 WHERE InvCode = '3333'  group  by  InvCode, bVirtual

第2次:
SELECT  max(PartId) ,InvCode, bVirtual
 FROM UFDATA_003_2017.dbo.bas_part
 WHERE InvCode = '3333'  group  by  InvCode, bVirtual

这2个值就是相同的,但多机版,就不一定了。

#15


bas_part 中PartId的值怎么来?

#1



INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          UFDATA_003_2017.dbo.bas_part.PartId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                ParentId ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

#2


忽略1#,用这个试试
INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          ParentId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                UFDATA_003_2017.dbo.bas_part.PartId ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

#3


引用 2 楼 sinat_28984567 的回复:
忽略1#,用这个试试
INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          ParentId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                UFDATA_003_2017.dbo.bas_part.PartId ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

不对,我要复制 UFDATA_002_2017.dbo.bas_part中的partid值到UFDATA_002_2017.dbo.bom_parent中的parentid。
partid和perentid 是关联字段,因为002.bas_part的partid不是从003中复制过来的,而是取002.bas_part中该字段的最大值+1


懂我的意思吗

#4


要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行

#5


引用 4 楼 sinat_28984567 的回复:
要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行


表bas_parent 的字段parentid要取 UFDATA_002_2017.dbo.bas_part的partid     ,其他字段还是要从UFDATA_003_2017.dbo.bom_parent中取

#6


引用 5 楼 qq_24417173 的回复:
Quote: 引用 4 楼 sinat_28984567 的回复:

要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行


表bas_parent 的字段parentid要取 UFDATA_002_2017.dbo.bas_part的partid     ,其他字段还是要从UFDATA_003_2017.dbo.bom_parent中取

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的

#7


引用 6 楼 sinat_28984567 的回复:
Quote: 引用 5 楼 qq_24417173 的回复:

Quote: 引用 4 楼 sinat_28984567 的回复:

要复制UFDATA_002_2017.dbo.bas_part的数据,关联UFDATA_003_2017.dbo.bas_part表干什么?如果是也要插入UFDATA_003_2017.dbo.bas_part表中的数据,可以用子查询试试,或者不出现一对多的关系的话,再关联一个UFDATA_002_2017.dbo.bas_part表进行插入也行


表bas_parent 的字段parentid要取 UFDATA_002_2017.dbo.bas_part的partid     ,其他字段还是要从UFDATA_003_2017.dbo.bom_parent中取

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

#8


引用 7 楼 qq_24417173 的回复:
我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的

#9


UFDATA_002_2017.dbo.bas_part

引用 8 楼 sinat_28984567 的回复:
Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

#10


引用 9 楼 qq_24417173 的回复:
UFDATA_002_2017.dbo.bas_part

Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

这不是难点……这是表设计或者需求有问题……

#11


引用 10 楼 sinat_28984567 的回复:
Quote: 引用 9 楼 qq_24417173 的回复:

UFDATA_002_2017.dbo.bas_part

Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

这不是难点……这是表设计或者需求有问题……


能通过设置变量 或者空值  去取值吗

#12


引用 11 楼 qq_24417173 的回复:
Quote: 引用 10 楼 sinat_28984567 的回复:

Quote: 引用 9 楼 qq_24417173 的回复:

UFDATA_002_2017.dbo.bas_part

Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 7 楼 qq_24417173 的回复:


我就是这个问题,要取UFDATA_002_2017.dbo.bas_part里的partid。

……我知道楼主要取这个

怎么和UFDATA_002_2017.dbo.bas_part这个表关联的?怎么去取这个表里的PartId值?如果是通过ParentId,那就不用取了,因为ParentId和PartId是一样的
   
难点就是在这,我也不知道通过什么去关联,因为这个是唯一的关联字段

这不是难点……这是表设计或者需求有问题……


能通过设置变量 或者空值  去取值吗

  每次复制的时候时候都是只有一条记录,只要去002中partid的最大值不就可以吗

#13


引用 12 楼 qq_24417173 的回复:
  每次复制的时候时候都是只有一条记录,只要去002中partid的最大值不就可以吗
如果是取最大值可以
INSERT  INTO UFDATA_002_2017.dbo.bom_parent
        ( AutoId ,
          BomId ,
          ParentId ,
          ParentScrap ,
          SharingPartId
        )
        SELECT  AutoId ,
                BomId ,
                ( SELECT    MAX(PartId)
                  FROM      UFDATA_002_2017.dbo.bas_part
                ) ,
                ParentScrap ,
                SharingPartId
        FROM    UFDATA_003_2017.dbo.bom_parent
                INNER JOIN UFDATA_003_2017.dbo.bas_part ON UFDATA_003_2017.dbo.bom_parent.ParentId = UFDATA_003_2017.dbo.bas_part.PartId
        WHERE   InvCode = '3333'

#14


第1次:
SELECT  max(PartId)+1, InvCode, bVirtual
 FROM UFDATA_003_2017.dbo.bas_part
 WHERE InvCode = '3333'  group  by  InvCode, bVirtual

第2次:
SELECT  max(PartId) ,InvCode, bVirtual
 FROM UFDATA_003_2017.dbo.bas_part
 WHERE InvCode = '3333'  group  by  InvCode, bVirtual

这2个值就是相同的,但多机版,就不一定了。

#15


bas_part 中PartId的值怎么来?