我正在使用Teradata SQL Assistant
。我是Teradata
数据库的新用户。
与SQL Server Management Studio
中一样,我无法通过Teradata Server
在SQL Assistant
上看到可用的数据库。
所以我想问一下,如何列出Teradata Server
中SQL Assitant
上可用的所有数据库。
只有这些信息,我才能决定我需要哪些数据库。可以要求进行所需的访问。
我搜索了Google&发现我们需要在SQL Assitant
中手动添加数据库,除非您知道数据库名称,否则这不是很有用。是否有其他可用的工具可以按照SSMS中的结构化排序方式向我显示可用的数据库列表?
任何信息链接都会有所帮助。
谢谢。
答案 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