SQLServercreateschema
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLServercreateschema
schema很重要,每个数据都得建schema,有时候我们不指定schema那么数据库也会默认当前登录⽤户的名为schema.为什么建schema呢,
你可能把他当成⼀个命名空间或⼀个架构来看,CREATE SCHEMA提供了在SQL语句中创建表、视图以及授予对象权限的⽅法,区别重名,
⽐较有的⼈就是怕索引名同名,所以创建schema,跟他的表的索引区别开来,同时可以让索引,表,视图不在同⼀个命名空间,让没有权限的⽤户不能操作。
为什么要这个分开命名空间呢,好处主要是对表的查询速度会有所提⾼,如果把索引跟表同在⼀个命名空间,那数据库表空间变⼩,因为索引是占空间的。
这样就会影响到查询表速度
drop schema abp
go
/*==============================================================*/
/* User: abp */
/*==============================================================*/
create schema abp
go
if exists (select1
from sysobjects
where id =object_id('abp.test')
and type ='U')
drop table abp.test
GO
/*==============================================================*/
/* Table: 测试表 */
/*==============================================================*/
create table abp.test (
aa varchar(50) not null ,
bb varchar(100) collate Chinese_PRC_CI_AS null,
cc int null
)
on "PRIMARY"
GO
--默认情况下为dbo,所以会提⽰对表没有权限
--DROP TABLE test
DROP TABLE abp.test。