【问题标题】:SQL Server to Teradata migrationSQL Server 到 Teradata 的迁移
【发布时间】:2014-12-22 05:16:01
【问题描述】:

我们正在从 SQL Server 迁移到 Teradata 数据库。迁移所有视图和表。但问题是我们无法从每个表中获取 cmets。

在 SQL Server 中,我们有一个名为扩展属性的函数,如果使用该函数将从相应的表/视图中获取 cmets。 Badhri 帮助提供了一个查询以以相同的方式获取 Teradata 中的评论,但它没有按预期方式工作。

我尝试在列中插入示例 cmets,但以下查询未获取准确结果。你能帮忙吗?

示例查询:

COMMENT ON COLUMN UtilityApp_DB.SQL_Views_Columns.ColumnNAME 'A Columnname for SQL Server!';

select  'COMMENT ON COLUMN '||trim(b.databasename)||'.'||trim(b.tablename) ||'.'||trim(b.columnname)||' IS '||''''||trim(b.commentstring)||''';'                                   
                   FROM DBC.Columns b
     WHERE b.CommentString IS NOT NULL
      AND DatabaseName='UtilityApp_DB'
     AND TableName in ('UtilityApp_DB.SQL_Views_Columns');

我创建了一个表并尝试通过复制 DBC Columns 结构在表中插入注释字符串的值,但我仍然无法获取注释字符串。

insert into UtilityApp_DB.commentstable (commentstring) values ('UtilityApp_DB.SQL_Views_Columns');

【问题讨论】:

    标签: sql-server teradata database-migration


    【解决方案1】:

    DBC.Columns 中的TableName 不包含数据库名称,并且您的字符串连接中的IS 应为AS

    SELECT 'COMMENT ON COLUMN '||trim(b.databasename)||'.'||trim(b.tablename) ||'.'||trim(b.columnname)||' AS '||''''||trim(b.commentstring)||''';'
      FROM DBC.Columns
     WHERE DatabaseName = 'UtilityApp_DB'
       AND TableName IN ('SQL_Views_Columns');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-04
      • 2011-10-07
      • 2011-09-20
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多