tsql - 关于 SQL Server 2008 R2 中列的元数据?

标签 tsql sql-server-2008 ssis

我正在尝试找出一种方法来存储有关列的元数据,而无需重复自己。

我目前正在开发一个通用的维度加载 SSIS 包,它将处理我的所有维度。目前是这样的:

  1. 创建一个与参数中给定表名相同的临时表(这是一个接收表名作为参数的通用存储过程,然后执行:select top 0 * into ##[INSERT ORIGINAL TABLE NAME HERE ] 来自 [INSERT ORIGINAL TABLE NAME HERE])。
  2. ==> 在这里,我们为这个特定维度插入自定义代码,该代码将首先从数据源查询数据并获取我的增量,然后转换数据并最终将其加载到我的临时表中。
  3. 使用 T-SQL MERGE 将临时表合并到我的原始表中,相应地处理 type1 和 type2 字段。

我现在的问题是我必须维护一个包含所有字段的表来存储元数据来告诉我的脚本这个特定字段是 type1 还是 type2...这是胡说八道,我可以获得相同的数据(减去 type1/type2)来自 sys.columns/sys.types。

我最终考虑重命名我的字段以将它们的类型包含在其中,例如: FirstName_T2、LastName_T2、Sex_T1(好吧,我知道这可能是 type2,我们不要在这里争论)。

你们会用那个做什么?我的解决方案(使用带有该元数据的表)目前已经到位并且可以正常工作,但很明显,将我自己从 systables 重复到自定义表是无稽之谈,只是为了一个简单的 type1/type2 信息。

更新:我还考虑过创建用户定义的类型,例如 varchar => t1_varchar、t2_varchar 等。这听起来也有点笨拙...

最佳答案

您需要的一切应该已经在INFORMATION_SCHEMA.COLUMNS 中了

我无法理解您使用提供的表/ View 的想法...

编辑:正如 scarpacci 所提到的,如果需要的话,这在某种程度上是可移植的。

关于tsql - 关于 SQL Server 2008 R2 中列的元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7678913/

相关文章:

sql-server - SQL Server中ISNULL(SUM(x),0)或SUM(ISNULL(x,0)之间的差异

sql - 在查询结果中显示表名; SQL Server 2008

sql-server - SSIS 中 bool 值的问题

sql-server - 脚本任务使用集成服务发布不支持的版本15.0

sql - 通过sql对分区计数不同

sql-server - T-SQL 抛出异常

sql-server - T-SQL字符串电子邮件格式问题

SQL 更新 - 多列

sql - 从所有数据库中具有特定名称的所有表中选择

variables - 在集合中找不到 SSIS 元素(但我已将它们全部列出!)