SQLServer create schema


schema很重要,每個數據都得建schema,有時候我們不指定schema那么數據庫也會默認當前登錄用戶的名為schema.為什么建schema呢,
你可能把他當成一個命名空間或一個架構來看,CREATE SCHEMA 提供了在SQL語句中創建表、視圖以及授予對象權限的方法,區別重名,
比較有的人就是怕索引名同名,所以創建schema,跟他的表的索引區別開來,同時可以讓索引,表,視圖不在同一個命名空間,讓沒有權限的用戶不能操作。
為什么要這個分開命名空間呢,好處主要是對表的查詢速度會有所提高,如果把索引跟表同在一個命名空間,那數據庫表空間變小,因為索引是占空間的。
這樣就會影響到查詢表速度
drop schema abp
go

/*==============================================================*/
/* User: abp                                                    */
/*==============================================================*/
create schema abp
go

if exists (select 1
            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




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM