SQL Server 同义词

2025年3月17日 | 阅读 3 分钟

使用 SQL Server 同义词,可以为数据库对象(如表、视图、存储过程、用户定义的函数和序列)指定别名或备用名称。

每当我们在数据库中创建 SQL Server 同义词时,该同义词都会引用特定的数据库对象,该数据库对象称为基对象。 同义词引用的基对象的位置可以在同一数据库中,也可以在同一服务器上的其他数据库中,甚至在另一台服务器上运行的其他实例中。

我们可以在各种场景中使用 SQL Server 同义词并从中获益。 一些场景是

  • 由于代码中对特定对象有数百甚至数千个引用,因此在这种情况下,我们可以为该对象分配一个同义词。
  • 可以向分配了同义词的实际基对象添加额外的抽象层。
  • 数据库查询可以轻松地引用那些看起来位于当前数据库中的对象,即使它们实际上位于其他数据库中。
  • 还可以为数据库较新版本中需要的旧版基对象提供向后兼容性。
  • 借助 SQL Server 同义词,可以为保护基对象提供额外的安全层。
  • 在某些情况下,当我们想要迁移到另一个数据库时,借助 SQL Server 同义词,我们可以引用基对象,而无需考虑迁移问题。
  • 可以使用 SQL Server 同义词简化数据库中冗长且令人困惑的对象名称。
  • 作为持续集成构建过程的一部分,可以使用 SQL Server 同义词轻松消除下游环境(如开发、测试和质量保证)中跨数据库和服务器依赖性方面的各种问题。

在 SQL Server 数据库中创建同义词的语法是

在上面写的语法中

  • Name_of_schema:name_of_schema 是同义词所在的模式的名称
  • 词将被创建。
  • Name_of_synonym:name_of_synonym 表示同义词的名称。
  • Name_of_base_object:name_of_base_object 表示要向其分配同义词的基对象的名称。

如何在 SQL Server 数据库中使用同义词?

让我们借助示例了解 SQL Server 同义词。 让我们创建一个数据库并选择该特定数据库。 用于创建和选择该数据库的语法是


SQL Server Synonym

正如我们在图像中看到的,一个名为 'salesdb' 的数据库已成功创建并选择。

现在,我们将在该模式内创建一个模式和一个表。 用于创建模式和表的语法是


SQL Server Synonym

正如我们在图像中看到的,一个名为 'grocery' 的模式已成功创建,并且一个名为 fruits 的表也已成功创建,该表具有两个列,用于存储食品模式内水果的数量和名称。

现在让我们向 fruits 表添加一些数据。 同样的语法是


SQL Server Synonym

如图所示,七行数据已插入到 fruits 表中。 并且相同的内容可以看作是 SELECT 命令的输出。

每当我们想要引用 fruits 表时,首先我们需要编写数据库名称,后跟模式名称,然后是表名称。 为了减少这种开销,我们可以使用以下语法创建一个同义词


SQL Server Synonym

名为“fruits”的同义词已成功创建,现在我们可以使用它了。

因此,本文帮助我们了解 SQL Server 中同义词的工作原理以及如何根据我们的问题要求使用它。