如何把變量復制到另一個表中



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的值怎么來?

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: