2010-02-09 26 views
0

SSIS團隊博客撰寫了一篇名爲「API示例 - OleDB源和OleDB目標」的好文章,展示瞭如何以編程方式創建數據流從OleDB源代碼並寫入到不同的Ole DB目標表。瞭解SSIS團隊博客中的「API示例 - OleDB源和OleDB目標」文章

http://blogs.msdn.com/mattm/archive/2008/12/30/api-sample-oledb-source-and-oledb-destination.aspx

我遇到的問題是下面的代碼兩行圍:

destDesignTimeComponent.SetComponentProperty("AccessMode", 3); 
destDesignTimeComponent.SetComponentProperty("OpenRowset", "[DimCustomer_Copy]") 

上面的代碼只有當表DimCustomer_Copy已經存在的作品。我想要做的是讓程序學習源表的結構並自動創建目標表。正如在文章中解釋早期,有2的值傳遞給AccessMode屬性和SQL語句給SqlCommand屬性的選項。所以我所做的就是

destDesignTimeComponent.SetComponentProperty("AccessMode", 2); 
destDesignTimeComponent.SetComponentProperty("OpenRowset", @"CREATE TABLE ...") 

但是,這似乎並沒有工作。我知道我可以隨時創建使用的SqlCommand,SqlConnection的,等一個表,但我更喜歡有目標表此程序化的方式自動使用SSIS創建。所以我的問題是如何去做。

+0

AccessMode 4是OPENROWSET用於從可變快速加載。你用什麼代碼來爲OpenRowset設置變量值?從您的代碼示例似乎您試圖在OPENROWSET SetComponentProperty調用創建表。 – 2010-02-11 12:00:59

+0

你對訪問模式4是對的。我在問題中改爲2。 – 2010-03-23 13:34:37

回答

1

這是因爲ValidateExternalMetadata設置爲True。但是,如果您設置爲false,則必須實現您自己的'disconnected' validation