2

BillingAddress と Shipping Address を組み合わせたスキーマから、db の User オブジェクトをリファクタリングしています。

[BillingFirstName] [nvarchar](50) NOT NULL,
[BillinglastName] [nvarchar](50) NOT NULL,
[BillingAddress] [nvarchar](100) NOT NULL,
[BillingCity] [nvarchar](100) NOT NULL,
[BillingZip] [varchar](16) NOT NULL,
[BillingState] [nvarchar](2) NOT NULL,
[shippingFirstName] [nvarchar](50) NULL,
[shippingLastName] [nvarchar](50) NULL,
[shippingAddress] [nvarchar](100) NULL,
[shippingCity] [nvarchar](100) NULL,
[shippingState] [nvarchar](2) NULL,
[shippingZip] [nvarchar](20) NULL,
[shippingPhone] [nvarchar](30) NULL,

ユーザー用の 1 つのテーブルと、外部キーによってバインドされたアドレス用の別のテーブルにリファクタリングされました Users.ID => Addresses.idUser

    CREATE TABLE [dbo].[Addresses](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Type] [nchar](10) NOT NULL, // designates Billing or Shipping
[Formatted] [nchar](600) NOT NULL,
[Street] [nchar](100) NOT NULL,
[City] [nchar](100) NOT NULL,
[POBox] [nchar](50) NULL,
[Region] [nchar](50) NULL,
[PostalCode] [nchar](50) NULL,
[Country] [nchar](50) NULL,
[ExtendedAddress] [nchar](100) NULL,
[idUser] [int] NULL,

簡略化された User オブジェクトにレコードをインポートしてから、2 つの住所レコードを作成するように SSIS に指示するにはどうすればよいですか。1 つは配送情報、もう 1 つは請求情報ですか?

既存の ID キーを保持したいと思います。

どうも

4

1 に答える 1

1
  1. ソースデータをマルチキャストします。
  2. 各出力ストリームに派生列コンポーネントを追加します。1つを「請求先住所」ストリーム、もう1つを「配送先住所」ストリームとして指定してください。
  3. 「請求」と「配送」にそれぞれハードコードされた「タイプ」という名前の新しい列を追加します。
  4. アドレステーブルを指す宛先コンポーネントを各ストリームに追加します。
  5. 各ストリームの適切な列をマップします(つまり、BillingCityを「billingaddress」ストリームのCityに、ShippingCountryを「shippingaddress」ストリームのCountryにマップします)。
于 2012-12-06T15:26:46.667 に答える