使用模式获取完全限定表名的惯用方法

问题描述 投票:0回答:1

我想获取数据库中表的名称。 由于它有多个模式,我需要每个模式的完全限定名称(采用

schema.table
格式)。 我可以用

得到这个

select schema_name(schema_id) + N'.' + name from sys.tables

或者正确处理表名中的空格等,

select quotename(schema_name(schema_id)) + N'.' + quotename(name) from sys.tables

我的问题很简单,有没有更惯用的方法来实现这个? 要将完全限定名称作为单个字符串返回,而不是每次都粘贴在一起? 有某种视图可以提供它吗? (我知道通常最好避免使用

information_schema
视图。)

(我不介意返回的名称是否包含在

[]
字符中 - 对于我的特定数据库,不需要引用,但我接受一般情况下可能需要引用。)

我正在使用 Microsoft SQL Server 2019。

sql-server schema
1个回答
0
投票

据我所知,答案是“不”。 您必须查找架构名称并将字符串粘贴在一起。

我已向 Microsoft 提交此功能请求:https://feedback.azure.com/d365community/idea/53456c98-d392-ef11-95f6-000d3ae2b698

© www.soinside.com 2019 - 2024. All rights reserved.