Teradata - 如何在SQL Assistant查询工具下添加列出Teradata服务器上的所有可用数据库?

时间:2017-01-09 11:04:43

标签: sql database teradata

我正在使用Teradata SQL Assistant。我是Teradata数据库的新用户。 与SQL Server Management Studio中一样,我无法通过Teradata ServerSQL Assistant上看到可用的数据库。

所以我想问一下,如何列出Teradata ServerSQL Assitant上可用的所有数据库。 只有这些信息,我才能决定我需要哪些数据库。可以要求进行所需的访问。

我搜索了Google&发现我们需要在SQL Assitant中手动添加数据库,除非您知道数据库名称,否则这不是很有用。是否有其他可用的工具可以按照SSMS中的结构化排序方式向我显示可用的数据库列表?

任何信息链接都会有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:3)

正如@dnoeth所提到的,您可以通过查询DBC.databasesV表来获取数据库列表。如果还想查看层次结构,可以在该表中看到OwnerName,并从该父/子关系创建层次结构。

在SQL中以可视方式显示层次结构的方法是使用递归CTE。在你的情况下:

WITH RECURSIVE dbs AS
(
    SELECT 

        databasename,
        ownername,
        0 AS depth,
        cast(databasename AS VARCHAR(500)) AS path,
        CAST(DatabaseName AS VARCHAR(500)) AS pretty_hierarchy

    FROM "DBC".databasesv
    WHERE DatabaseName = 'DBC'

    UNION ALL

    SELECT
        dbsv.databasename,
        dbsv.ownername,
        depth + 1 AS depth,
        path || '>' || dbsv.databasename,
        substring('            ' FROM 1 FOR (dbs.depth + 1)*3) || dbsv.DatabaseName 
    FROM
        dbs INNER JOIN "DBC".DatabasesV dbsv ON
            dbsv.OwnerName = dbs.databasename AND
            dbsv.DatabaseName <> dbs.databasename
    WHERE dbs.depth <=10
)
SELECT * FROM dbs ORDER BY "path", depth