【问题标题】:SSIS get all data from A table that are not in B table and inserted it in table BSSIS从A表中获取不在B表中的所有数据并将其插入表B中
【发布时间】:2014-11-09 12:44:29
【问题描述】:

我有两个表,我需要创建 SSIS 包“数据流任务”

表 A 和表 B,我需要创建 SSIS 包,始终将不在表 B 中的数据从表 A 插入表 B(基于 A 中的 badgeno 和 B 中的 badgeno_ID )。有什么想法和帮助吗?

CREATE TABLE [dbo].[A](
    [firstname] [nvarchar](100) NULL,
    [mobile] [nvarchar](50) NULL,
    [note] [nvarchar](500) NULL,
    [city] [nvarchar](255) NULL,
    [badgeno] [nvarchar](50) NULL,
    [lastname] [nvarchar](100) NULL
) ON [PRIMARY]

GO



CREATE TABLE [dbo].[B](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [FirstName] [nvarchar](100) NULL,
    [LastName] [nvarchar](100) NULL,
    [DateOfBirth] [datetime] NULL,
    [FirmID] [int] NULL,
    [Phone] [varchar](50) NULL,
    [Mobile] [varchar](50) NULL,
    [EMail] [nvarchar](100) NULL,
    [EmployeeNr] [nvarchar](10) NULL,
    [Note] [nvarchar](500) NULL,
    [PhonePrivate] [varchar](50) NULL,
    [StreetAddress] [nvarchar](255) NULL,
    [Zip] [nvarchar](20) NULL,
    [City] [nvarchar](255) NULL,
    [Data] [nvarchar](500) NULL,
    [UserName] [nvarchar](50) NULL,
    [Password] [nvarchar](50) NULL,
    [ADGUID] [nvarchar](50) NULL,
    [Language] [nvarchar](50) NULL,
    [Theme] [nvarchar](30) NULL,
    [DefaultZone] [int] NULL,
    [Bed] [nvarchar](50) NULL,
    [badgeNO_ID] [nvarchar](50) NULL,
    [RegisteredBy] [nvarchar](50) NOT NULL,
    [Registered] [datetime] NOT NULL,
    [LastUpdatedBy] [nvarchar](50) NOT NULL,
    [LastUpdated] [datetime] NOT NULL,
    [DefaultView] [nvarchar](50) NULL,
    [ExpandTagList] [bit] NULL,
    [PrintEmergencyReport] [bit] NULL,
    [EmergencyReportPath] [nvarchar](255) NULL)

【问题讨论】:

标签: mysql sql-server ssis


【解决方案1】:

拖放Execute Sql Task 并将以下t-sql 查询放入其中。乔布斯很好。

INSERT INTO [dbo].[B] 
                  ([firstname] , [mobile], [note], [City], [badgeNO_ID] , [LastName])
SELECT [A].[firstname] 
     , [A].[mobile]
     , [A].[note]
     , [A].[City]
     , [A].[badgeno] 
     , [A].[LastName]
FROM [dbo].[A] 
WHERE NOT EXISTS (SELECT 1 
                  FROM [dbo].[B]
                  WHERE [dbo].[A].[badgeno] = [dbo].[B].[badgeNO_ID])

【讨论】:

    【解决方案2】:

    【讨论】:

    • 但是我使用了 un-match 值,但是每次我需要运行包时,它都会复制输出,我的包会每天运行以获得 UN-matched 值,如果有不是联合国匹配的,它不应该插入任何价值观,任何想法和想法。 @布拉德D
    • 你的匹配标准是什么?它只是在“徽章 ID”列还是其他复合值上?
    • 是的,只有徽章 ID,我不想使用“插入到其他表中不存在的选择中”@BRAD D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    相关资源
    最近更新 更多