Teradata - 如何在 SQL Assistant Query Tool 下添加列出 Teradata 服务器上的所有可用数据库?
Teradata - How to add-list all available databases on Teradata server under SQL Assistant Query Tool?
我正在使用 Teradata SQL Assistant
。我是 Teradata
数据库的新用户。
与 SQL Server Management Studio
一样,我无法通过 SQL Assistant
查看 Teradata Server
上的可用数据库。
所以我只想问一下,如何在SQL Assitant
中列出Teradata Server
上所有可用的数据库。
只有这些信息,我才能决定我需要哪些数据库并可以请求所需的访问权限。
我在 Google 上搜索并发现我们需要在 SQL Assitant
中手动添加数据库,除非您知道数据库名称,否则这不是很有帮助。是否有任何其他可用的工具可以像在 SSMS 中那样以结构化排序的方式向我显示可用的数据库列表?
任何信息链接都会有所帮助。
谢谢。
如@dnoeth 所述,您可以通过查询 DBC.databasesV table 来获取数据库列表。如果您还想查看层次结构,可以在 table 中查看 OwnerName 并根据 parent/child 关系创建层次结构。
在 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
我正在使用 Teradata SQL Assistant
。我是 Teradata
数据库的新用户。
与 SQL Server Management Studio
一样,我无法通过 SQL Assistant
查看 Teradata Server
上的可用数据库。
所以我只想问一下,如何在SQL Assitant
中列出Teradata Server
上所有可用的数据库。
只有这些信息,我才能决定我需要哪些数据库并可以请求所需的访问权限。
我在 Google 上搜索并发现我们需要在 SQL Assitant
中手动添加数据库,除非您知道数据库名称,否则这不是很有帮助。是否有任何其他可用的工具可以像在 SSMS 中那样以结构化排序的方式向我显示可用的数据库列表?
任何信息链接都会有所帮助。
谢谢。
如@dnoeth 所述,您可以通过查询 DBC.databasesV table 来获取数据库列表。如果您还想查看层次结构,可以在 table 中查看 OwnerName 并根据 parent/child 关系创建层次结构。
在 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