我正在使用Teradata SQL Assistant。我是Teradata数据库的新用户。就像在SQL Server Management Studio中一样,我无法通过SQL Assistant查看Teradata Server上的可用数据库。
所以我只想问,如何在SQL Assitant中列出Teradata Server上所有可用的数据库。只需要这些信息,我就能够决定我需要哪些数据库,并可以请求所需的访问权限。
我在谷歌上搜索,发现我们需要在SQL Assitant中手动添加数据库,这并不是很有帮助,除非你知道数据库的名称。有没有其他工具可以像SSMS那样以结构化的方式显示可用的数据库列表?
任何信息链接都会很有帮助。
谢谢。
发布于 2017-01-10 01:53:52
正如@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", depthhttps://stackoverflow.com/questions/41546587
复制相似问题