欢迎您访问无忧自考网!

SQL Server: 数据库模式(SCHEMA)的应用及其优点

更新时间:2023-01-07 10:42:00作者:51data

本文将介绍数据库模式在SQL Server中的应用及其优势。

在模式中创建一个新表要创建一个像表这样的对象,我们需要指定将在其中创建对象的模式名。例如,以下脚本以不同的模式[HR]、[Admin]和[Fin]创建[TableA]。

SQL Server: 数据库模式(SCHEMA)的应用及其优点

创建TABLEHR。TableA(ID int identity(1,1)主键,[Name] varchar(100))创建表[Admin]。TableA(ID int identity(1,1)主键,[Name] varchar(100))创建表[Fin]。TableA(ID int identity(1,1)主键,[Name] varchar(100))

您可以使用sys.tables和sys.schema系统表来列出表名及其架构。例如,以下代码查询返回[TableA]及其货架模式。

SELECTs.name AS SchemaName,t . name AS tablename from sys . tables tINNER JOIN sys . schemas on t . schema _ id=s . schema _ id where t . name=' TableA '

例子

如果在创建对象时不指定架构,SQL Server将使用默认架构。例如,以下脚本在dbo模式下创建TableA。

创建表TableA(ID int identity(1,1)主键,[Name] varchar(100))

例子

注意:可以在数据库的不同模式中创建名称相似的表。因此,您需要指定表的模式,以便从正确的模式中获取数据。例如,如上所示,我们在所有架构中都有[TableA]。因此,如果您直接选择一条记录而不指定模式,它将在默认的DBO模式中查找该对象。因此,您需要为数据检索或任何操作指定一个模式名,比如SELECT * FROM HR.TableA。

在模式中创建存储过程同样,您可以在指定的模式中创建对象,如存储过程。例如,以下脚本在HR模式下创建一个服务点。

从[HR]创建过程HR.GetEmpDataASBEGINSELECT *。[表a]结束

将对象移动到不同的模式在某些时候,可能需要将对象移动到特定的模式。例如,假设创建了一个新的模式[Org],并且您想要您的[HR]。[TableA]从[HR]架构移到[Org]架构。在这种情况下,可以使用具有以下语法的Alter SCHEMA命令。

ALTER SCHEMA target _ SCHEMA _ name transfer[entity _ type:]secureable _ name;

脚本

创建方案[组织]目标方案组织转移HR.TableA

现在,转移存储过程[HR]。[GetEmpData]到[Org]模式。

更改方案组织转移HR.GetEmpData

执行脚本后,它将以[Org]模式显示存储过程。但是,在SP中,代码仍然指的是[HR]。[TableA]模式。

例子

因此,不应使用ALTER SCHEMA来移动存储过程、函数或视图,因为它可能会引用对象。相反,您可以删除、创建或更改SP,如下所示。

例子

删除架构您可以删除SQL Server数据库中的架构,但该架构不应包含任何对象。例如,如果您尝试删除[Org]模式,它将给出一个错误,说明该模式无法删除,因为GetEmpData对象正在引用它。

例子

因此,您可以将对象转移到不同的模式,或者先删除对象。一旦我们删除或移动了数据库模式中的所有对象,您就可以删除该模式。注意:不能删除系统模式,如dbo、information_schema和sys。

使用数据库模式的优点数据库模式为我们提供了在数据库中创建逻辑对象组的灵活性。如果多个团队使用同一个数据库,我们可以设计不同的模式来分组对象。数据库可以帮助数据库专业人员管理访问,因为可以控制对用户各自模式的访问,而不是提供对整个数据库的访问。您可以更有效地管理数据库,因为它允许多个模式中的相同对象显示为不同的逻辑组。您可以在不同的模式下快速移动对象。模式的所有权可以分配给任何数据库主体或角色,并且所有权也可以转移。它提供了额外的安全层,因为您需要知道正确的对象模式来查询或操作数据。您还可以控制对模式和模式所拥有的对象的访问。

为您推荐

腾讯云数据库产品(腾讯云数据库mysql怎么用)

7月8日,腾讯云正式发布了MySQL 8.0数据库。据悉,该数据库相比MySQL官方版本,无论是单机模式、异步模式还是同步模式下,读写性能都取得了大幅提升。据腾讯云数据库相关负责人介绍,采用MySQL 8.0内核的实例最高QPS(每秒查询率

2023-01-07 10:39

数据库技术在财务管理中的应用现状(mysql数据库技术与项目应用教程)

【数据库技术是信息系统的一个核心技术,是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据 】数据库技术是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据

2023-01-07 10:36

政治知识点七年级上册(政治知识点总结)

邓小平理论一、邓小平理论的主要内容 ⭐1、解放思想、实事求是的思想路线解放思想、实事求是的思想路线,有力地推动和保证了改革开放的进行,体现了辩证唯物主义和历史唯物主义的世界观方法论,体现了革命胆略和科学精神的统一,是邓小平理论的活的灵魂,是

2023-01-07 10:33

数据库热备解决方案(数据库安全解决方案)

随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。一、负载均衡技术负载均衡集群是由一组相互独立

2023-01-07 10:30

数据库实例图(数据库经典案例)

业务创新驱动力业务创新不是由数字驱动,而是在深入分析各个业务环节间关系的基础上,进行相应的业务变革,从而带来业务创新,因此关系是行为的最强预测因素。例如:零售商超公司可以通过分析客户与产品间的关系进行产品推荐,通过分析商品门店与供应商之间的

2023-01-07 10:27

每日打卡!党的二十大精神学习自测题(第16天)

炒菜的油锅起火了,应该怎么办?-点击查看答案- 为推动深入学习领会党的二十大精神,现开设“党的二十大精神应知应会百题”栏目,以答题形式加强理论学习。 你今天答对了几题?一、填空题:71中国式现代化,是 领导的社会主义现代化,既有各国现代化

2023-01-07 10:24

加载中...