【问题标题】:Get DataType of computed column from dacpac从 dacpac 获取计算列的 DataType
【发布时间】:2014-12-02 21:49:03
【问题描述】:

当通过 C# 代码遍历 Dacpac 时,我能够确定计算列 (GetReferenced(Microsoft.SqlServer.Dac.Model.Column.ExpressionDependencies)) 中引用了哪些列,以及该列的表达式是什么(Microsoft.SqlServer.Dac.Model.Column.Expression 属性)。我找不到的是计算列的数据类型。

除此之外,我也找不到检索FileTable 表列的方法(尽管这是一组静态列)。

搜索引擎不会带我走远;在这个主题上找不到那么多资源。

【问题讨论】:

    标签: sql-server sql-server-data-tools calculated-columns dacpac dac


    【解决方案1】:

    我在这里写过如何获取列的数据类型:

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

    我没有在计算列上尝试过。

    要获取文件表的列,请关注博客,但将 Table.Columns ModelRelationshipClass 替换为 FileTable.Columns ModelRelationshipClass。

    埃德

    【讨论】:

    • 嗨,Ed,我已经找到了你的博客,发现它对我的第一步非常有用。但是,您的博客没有回答此问题中描述的问题。此外,如果我使用您的工具“dacpac explorer”,我无法获得计算列的类型。它正确显示表达式,但对于类型,它指向引用的列。引用的列数据类型并不总是等于计算列的数据类型。
    • 感谢有关 FileTable 的提示,不小心使用了 Table 而不是 FileTable。
    • 酷,看起来计算列的数据类型实际上并不存在于 sql 中 - 如果您查看 model.xml 则没有类型说明符。我不确定这是否是 DacFx api 的错误,但如果你在 ssms 中找到一个表并将其编写出来 - 也没有它,因此 sql 在运行时编译它时必须对其进行评估。
    • @EdElliott - Ed,很抱歉提出这样的要求,但由于您是 SSDT 和 Dac api 方面的专家,您是否知道stackoverflow.com/questions/44058693/… 问题的解决方案?
    • 没问题,但每个人都必须睡觉 :) 就像 Steven 说的使用 dac 扩展,它使得使用 dacfx 探索 dacpac 变得更加简单 - 这个答案来自之前存在,所以我会更新它包含详细信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-28
    • 2012-03-28
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多