2014-12-02 34 views
1

當通過C#代碼遍歷Dacpac時,我能夠找出計算列中引用哪些列(GetReferenced(Microsoft.SqlServer.Dac.Model.Column.ExpressionDependencies)),以及該列的表達式是什麼(Microsoft.SqlServer.Dac.Model.Column.Expression屬性)。我無法找到的是計算列的數據類型。獲取來自dacpac的計算列的數據類型

除此之外,我也找不到一種方法來檢索FileTable表的列(雖然這是一組靜態的列)。

搜索引擎不會給我帶來很多;在這個主題上找不到那麼多資源。

回答

2

我在這裏的博客上如何得到列的數據類型:

http://sqlserverfunctions.wordpress.com/category/dacfx-2/

我還沒有嘗試過計算列。

要獲取文件表的列,請關注博客,但用FileTable.Columns ModelRelationshipClass替換Table.Columns ModelRelationshipClass。

Ed

+0

嗨,Ed,我已經找到你的博客,並發現它非常有用作爲我的第一步的指導。然而,這個問題中描述的問題沒有被你的博客回答。此外,如果我使用您的工具「dacpac資源管理器」,我無法獲得計算列的類型。它正確顯示錶達式,但對於Type來說,它指向被引用的列。引用的列數據類型不總是等於計算列的數據類型。 – 2014-12-03 00:18:28

+0

感謝關於FileTable的提示,不小心使用了Table而不是FileTable。 – 2014-12-03 00:37:23

+0

很酷,它看起來像一個計算列的數據類型實際上並不存在於sql中 - 如果您查看model.xml中沒有類型說明符。 我不確定這是否是一個DacFx api的bug,但是如果你在ssms中找到一個表並將它編寫出來 - 它沒有它,所以sql在運行時編譯它時必須對它進行評估。 – 2014-12-03 07:21:37