12月 26, 2007

使用SQL Server Business Intelligence Development Studio匯到Access資料

把Access資料轉到SQLserver有很多方式,寫程式轉(很麻煩= =)、用Access2003的轉換精靈(不能更換資料表名稱,不能批次轉換,若Access DB很少可以用這方法)

使用SQL Server Business Intelligence Development Studio雖然也是麻煩但設定檔設定完成後可以批次轉換所有Access資料庫,適合Access DB量大的時候

開啟Microsoft Visual studio 2005 > Microsoft Visual studio 2005



專案 > SSIS匯入和匯出精靈



選擇資料來源Microsoft Access

選擇資料目的



來源是Access的資料表,目的地是SQL的資料表,你可以把目的地的table 名稱改成你想要的

然後按設定選先卸除再建立新目的資料表(如果SQLserver原本就有同樣名稱的資料表,轉檔時會發出錯誤,所以先移除同樣檔名的資料表)



Intelligence service會自動產生左邊紅框框的流程
卸除資料表SQL工作:如果有選擇先卸除再建立新目的資料表就會出現
準備SQL工作:會在SQL server中建立剛匯入的table schema,但是不會帶出原本的主鍵、外鍵等...= =
資料流程工作:設定access資料和sql資料的mapping



因為準備SQL工作中,沒有主鍵等設定…所以自已加入,設定如下

主鍵: PRIMARY KEY

欄位自動加1: IDENTITY (1, 1)

複數主鍵:

CONSTRAINT [PK_TABLE的名稱_site] PRIMARY KEY CLUSTERED

(

[主鍵欄位1] asc,

[主鍵欄位2] asc

)

範例:

CREATE TABLE [EOP-APP004].[dbo].[MCline] (

[pr_id] int ,

[seq] int,

[planner_coder] nvarchar(10),

[part_no] nvarchar(50),

[part_desc] nvarchar(100),

CONSTRAINT [PK_MCline_site] PRIMARY KEY CLUSTERED

(

[pr_id] ASC,

[seq] asc

)

)

GO

或是

用access 2003的SQL轉換精靈先轉進一個暫時的資料庫



然後用sql server2005的物件總管查看create table該table的語法



把table的schema設好後,就是一個基本的轉檔script,你可以利用Intelligence Development Studio提供的其他工作再加上其他的功能。

1 則留言:

匿名 提到...

您好,想請問一個問題
目前我在sql 2005上資料匯出匯入精靈內
資料來源的下拉選單中
只有看到
.net framework data provider for sqlserver,
.net framework data provider for ODBC,
.net framework data provider for Oracle,
以及一般檔案來源
沒有其他選項,看起來很怪
請問您有遇過這樣的問題嗎?
先謝謝您的回答