干货:SQL Server同义词管理

摘要

本文介绍SQL Server中的同义词概念和作用,以及如何使用脚本来管理。

认识同义词

SQL Server中的同义词是一个数据库对象的别名,主要用于简化对表、视图、存储过程等的访问。

注意事项

同义词只是查询引用,所以不支持直接修改同义词来变更指向的对象。同义词通常是在同一个数据库的不同模式之间创建。

应用场景

跨数据库查询、隐藏复杂表名、版本升级平滑切换等。例如,可用简短同义词替代长表名,或在数据库架构升级时,仅修改同义词指向,无需改动应用代码。

同义词增删改:

  • 新增:CREATE SYNONYM 模式.同义词名称 FOR 数据库.模式.表名;
  • 修改名称:EXEC sp_rename '旧的同义词名称', '新的同义词名称';
  • 删除同义词:DROP SYNONYM "同义词名称";

脚本示例 SSMS中执行,末尾需要加上GO

原表数据展示

css 复制代码
USE coffeebeans_db;
SELECT * FROM [dbo].my_table

1)创建同义词

sql 复制代码
USE coffeebeans_db;

-- 不存在coffeebeans_tyc同义词则创建
IF NOT EXISTS (SELECT 1 
    FROM sysobjects 
    WHERE name = 'coffeebeans_tyc')
BEGIN
     CREATE SYNONYM [dbo].coffeebeans_tyc 
     FOR [coffeebeans_db].[dbo].my_table;
END

2)查询同义词

css 复制代码
USE coffeebeans_db;

SELECT * FROM [dbo].coffeebeans_tyc

3)更改同义词名

sql 复制代码
USE coffeebeans_db;

-- 存在coffeebeans_tyc表则更改表名
IF EXISTS (SELECT name 
    FROM sysobjects 
    WHERE name = 'coffeebeans_tyc')
BEGIN
    EXEC sp_rename 'coffeebeans_tyc', 'coffeebeans_tyc_1' 
END

-- 输出:SQL 错误 [208] [S0002]: 对象名 'dbo.coffeebeans_tyc' 无效。
SELECT * FROM [dbo].coffeebeans_tyc

4)删除同义词

sql 复制代码
USE coffeebeans_db;

IF EXISTS (SELECT 1 
    FROM [sys].[synonyms] 
    WHERE [name]='coffeebeans_tyc_1')
BEGIN
    DROP SYNONYM [dbo].coffeebeans_tyc_1
END

-- 输出:SQL 错误 [208] [S0002]: 对象名 'dbo.coffeebeans_tyc_1' 无效。
SELECT * FROM [dbo].coffeebeans_tyc_1

总结

以上我们了解了SQL Server中的同义词概念、作用以及脚本书写方式。

关注公众号:咖啡Beans

在这里,我们专注于软件技术的交流与成长,分享开发心得与笔记,涵盖编程、AI、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。

相关推荐
程序猿DD4 小时前
OctaFuse Gateway 2.15.0:MCP 聚合、向量 Embeddings 与官方目录同步
后端·agent
余槐i7 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
需要8267 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
凤山老林8 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
伯恩bourne9 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
张彦峰ZYF9 小时前
停顿短不等于延迟低:G1、ZGC 与低延迟服务的目标分野、代价账本与选型标定
后端·回收暂停、应用停止总时长·到达安全点、分配停滞·屏障吃吞吐、并发线程吃核心·并发窗口吃堆余量·分区式靠挑回收集兑现目标·染色指针式不支持压缩引用
pride.li10 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
upala10 小时前
【仓颉语言入门 · 第二篇 第 6 课】
后端
罗丹丹Luna10 小时前
移动端显示“已提交”以后:SAP 与低代码集成该怎样暴露真实状态
后端·架构
码事漫谈10 小时前
因为太想讨好你,所以AI会骗你
后端