我正在使用 Teradata SQL Assistant
。我是 Teradata
数据库的新用户。
与在 SQL Server Management Studio
中一样,我无法通过 SQL Assistant
查看 Teradata Server
上的可用数据库。
所以我只想问,如何在 SQL Assitant
中列出 Teradata Server
上所有可用的数据库。
只有这些信息,我才能决定我需要哪些数据库并可以请求所需的访问权限。
我在 Google 上搜索并发现我们需要在 SQL Assitant
中手动添加数据库,除非您知道数据库名称,否则这不是很有帮助。是否有任何其他可用的工具可以像在 SSMS 中那样以结构化排序的方式向我显示可用的数据库列表?
任何信息链接都会有所帮助。
谢谢。
最佳答案
如@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
关于sql - Teradata - 如何在 SQL Assistant 查询工具下添加列出 Teradata 服务器上的所有可用数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41546587/