【问题标题】:How to refer to table SCHEMA using TSQL?如何使用 SQL 引用表 SCHEMA?
【发布时间】:2020-07-28 09:10:12
【问题描述】:

我正在使用 AdventureWorksLT,每个表都有 SalesLT 架构; 每次我必须进行查询时,我都需要参考 SalesLT Schema:

SELECT * FROM SalesLT.Address

这使得查询非常广泛;有没有办法引用 SalesLT Schema,而不必在每个查询中都写它,例如

SELECT * FROM Address

【问题讨论】:

  • 我几乎不会将模式限定对象名称称为大量工作。我建议您习惯它,因为架构名称是对象名称的一部分,并且会提高性能。

标签: sql sql-server tsql schema


【解决方案1】:

使用ALTER SCHEMA 定义默认架构。在您再次运行此命令之前,此更改是永久性的:

ALTER USER <user> WITH DEFAULT_SCHEMA = <my-schema>

据我所知,没有办法仅为会话更改默认架构。这是一个永久性的变化。

【讨论】:

    【解决方案2】:

    如果您不想给出架构名称,您可以为用户设置默认架构 -

    设置默认架构

    ALTER USER [yourUser] WITH DEFAULT_SCHEMA = [YourSchema];
    

    查看架构 -

    SELECT SCHEMA_NAME()
    

    【讨论】:

    • 来自Alter User:“如果用户是 sysadmin 固定服务器角色的成员,则忽略 DEFAULT_SCHEMA 的值。sysadmin 的所有成员b> 固定服务器角色的默认架构为dbo。"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    相关资源
    最近更新 更多