У меня есть две таблицы, и мне нужно создать пакет SSIS «задача потока данных»

Таблица A и таблица B, мне нужно создать пакет SSIS, который всегда вставляет данные, которых нет в таблице B, из таблицы A в таблицу B (на основе badgeno в A и badgeno_ID в B). какие мысли и помогает плз?

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)
0
osama 9 Ноя 2014 в 15:44
Обратитесь к этому, чтобы создать отчет codeproject .com/Articles/173918/…
 – 
Dgan
9 Ноя 2014 в 16:07

2 ответа

Лучший ответ

Перетащите 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])
0
M.Ali 9 Ноя 2014 в 16:52

Используйте преобразование поиска SSIS с выводом «Нет совпадений»

http://msdn.microsoft.com/en-us/library/ms141821.aspx

https://www.simple-talk.com/sql/ssis/implementing-lookup-logic-in-sql-server-integration-services/

0
Brad D 9 Ноя 2014 в 20:33
Однако я сделал это, используя значение несовпадения, но каждый раз, когда мне нужно запустить пакет, он дублирует выходные данные, мой пакет всегда будет запускаться каждый день, чтобы получить несовпадающие значения, и если нет несовпадающего, он должен вставлять любые ценности, любые мысли и идеи. @Брэд Д
 – 
osama
11 Ноя 2014 в 13:48
Каковы ваши критерии соответствия? это просто в столбце «Идентификатор значка» или в другом составном значении?
 – 
Brad D
11 Ноя 2014 в 17:10
Да, только идентификатор значка, я НЕ ХОЧУ ИСПОЛЬЗОВАТЬ «ВСТАВИТЬ В SELECT, ГДЕ НЕ СУЩЕСТВУЕТ В ДРУГОЙ ТАБЛИЦЕ» @BRAD D
 – 
osama
13 Ноя 2014 в 08:52