首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分表并插入标识链接

拆分表并插入标识链接
EN

Stack Overflow用户
提问于 2010-06-16 06:57:15
回答 2查看 356关注 0票数 1

我有三张桌子和下面的结构相似

代码语言:javascript
复制
    CREATE TABLE [dbo].[EmpBasic](
        [EmpID] [int] IDENTITY(1,1) NOT NULL Primary Key,
        [Name] [varchar](50),
        [Address] [varchar](50)
        )


    CREATE TABLE [dbo].[EmpProject](
        [EmpID] [int] NOT NULL primary key,  // referencing column with EmpBasic
        [EmpProject] [varchar](50)  )



    CREATE TABLE [dbo].[EmpFull_Temp](
        [ObjectID] [int] IDENTITY(1,1) NOT NULL Primary Key,
        [T1Name] [varchar](50) ,
        [T1Address] [varchar](50) ,
        [T1EmpProject] [varchar](50) 
            )

EmpFull_Temp表有带有虚拟对象ID列的记录.我想用这个表中的记录填充前两个表.但是以EmpID作为前两个表之间的引用。

我在存储过程中试过这个..。

代码语言:javascript
复制
    Create Table #IDSS (EmpID bigint, objID bigint)

    Insert into EmpBasic
        output Inserted.EmpID, EmpFull_Temp.ObjectID
        into #IDSS
        Select T1Name, T1Address from EmpFull_Temp
            Where ObjectID < 106


    Insert into EmpProject
        Select A.EmpID, B.T1EmpProject from #IDSS as A, EmpFull_Temp as B
            Where A.ObjID = B.ObjectID

但上面说..。多部分标识符"EmpFull_Temp.ObjectID“无法绑定。

你能帮我实现这个..。

编辑:不能保证Name+Address在EmpBasic表中是唯一的

EN

回答 2

Stack Overflow用户

发布于 2010-06-16 21:26:17

在ObjectID表中添加一个EmpBasic列,以方便数据传输,然后在完成时将其删除。假设这是一次操作,如果正在进行中,我不建议添加或删除列。

票数 1
EN

Stack Overflow用户

发布于 2010-06-17 02:41:54

我已经使用Stack Exchange数据资源管理器来研究其他解决方案。目前唯一有希望的是这里。这实际上是@ScotHauder的答案,除了使用带有ObjectID列的临时表和使用IDENTITY_INSERT将生成的EmpId值移动到EmpBasic之外。

如果必须多次执行此操作,则需要将EmpBasic_Temp EmpId IDENTITY的起始值设置为Max(EmpBasic.EmpID)+1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3051230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档