- PR -

SSISのタスクで重複主キーのデータのチェック方法

1
投稿者投稿内容
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-10-19 17:36
こんにちは。



SSISのタスクを使って、フラットファイルにあるレコードをチェックしようと思っています。

重複主キーのデータがあったら、エラーで終了させたいです。



USE [TEST]
GO

/****** Object: Table [dbo].[Table_2] Script Date: 10/17/2008 16:17:14 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Table_2]') AND type in (N'U'))
DROP TABLE [dbo].[Table_2]
GO

USE [TEST]
GO

/****** Object: Table [dbo].[Table_2] Script Date: 10/17/2008 16:17:14 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Table_2]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[Table_2](
[ID] [int] NOT NULL,
[NAME] [nchar](10) COLLATE Japanese_CI_AS NULL,
CONSTRAINT [PK_Table_2] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO



こう言ったテーブルがありますと…

IDは主キーになります。



Sample Data:

/*******************

1,AAAA

2,BBBB

3,CCCC

4,DDDD

2,EEEE

*******************/



このフラットファイルに

/*******************

1,AAAA

2,BBBB

3,CCCC

4,DDDD

2,EEEE

*******************/

2行目と5行目は同じ主キーになるため、DTSX実行するときに、キー違反のエラーになります。



やりたいこと:

データベースのテーブルに入れる前に、同じ重複した主キーデータはあるかどうか、一回チェックしたいです。あった場合、エラーを起こして、SSIS処理を終了させたいです。


何かいい方法はありますでしょうか。SSIS勉強不足で、すみません。ご教授ください。

よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)