sql server建立架構
學習如何使用sql servercreate schema
在當前資料庫中建立新架構。
架構是包括表,檢視,觸發器,儲存過程,索引等
在內的資料庫物件的集合
。架構與稱為架構所有者的使用者名稱相關聯,該使用者名稱是邏輯上相關的資料庫物件的所有者。
架構始終屬於乙個資料庫。
另一方面,資料庫可以具有乙個或多個架構。
sql server提供了我們與具有相同名稱的內建資料庫使用者和角色,例如一些預先定義的架構:dbo
,guest
,sys
,和information_schema
。
請注意,sql server
為系統物件
保留sys
和information_schema
架構,因此,您不能
在這些架構中
建立或刪除任何物件。
新建立的資料庫的預設架構為dbo
,由dbo
使用者帳戶擁有。
預設情況下,當您使用
create user
命令
建立新使用者時
,該使用者將
dbo
作為其預設架構。
該建立架構語句允許您在當前資料庫中建立新的架構。
create schema schema_name用這種語法,[authorization owner_name]
以下示例顯示如何使用該create schema
語句建立customer_services
架構:
schema
customer_services;
go請注意,該go
命令指示sql server management studio將sql語句傳送go
到要執行的伺服器的語句。
執行該語句後,您可以
在資料庫名稱
的「 安全性」>「架構」
下找到新建立的架構
如果要列出當前資料庫中的所有架構,則可以從中查詢架構,sys.schemas
如以下查詢所示:
s.name as schema_name,
u.name as schema_owner
from
sys.schemas s
inner join sys.sysusers u on u.uid = s.principal_id
order by
s.name;
這是輸出:
擁有customer_services
架構後,您可以為架構建立物件。例如,以下語句建立乙個jobs
在customer_services
架構中命名的新錶:
table
jobs(
job_id
intprimary
keyidentity
, customer_id
intnot
null
, description
varchar(200
), created_at datetime2
notnull
);如何使用sql server更改架構
將安全物件從一種架構轉移到另一種架構。
該alter schema
語句允許您將安全物件從架構轉移到同一資料庫中的另乙個架構。
請注意,安全物件是資料庫引擎授權系統控制對其進行訪問的資源。
例如,表是安全的。
下面顯示了該alter schema
語句
的語法:
schema
target_schema_name
transfer
[實體物件 ::
] securable_name;
使用以下語法:
如果移動儲存過程,函式,檢視或觸發器,則sql server不會更改這些安全物件的架構名稱。 因此,建議您在新架構中刪除並重新建立這些物件,而不要使用alter schema語句進行移動。
如果移動物件(例如表或同義詞),sql server將不會自動更新這些物件的引用。
您必須手動修改引用以反映新的架構名稱。
例如,如果移動
儲存過程中引用的表,則
必須修改儲存過程以反映新的架構名稱。
首先,在dbo架構中建立乙個名為office的新錶:
table
dbo.offices
( office_id
intprimary
keyidentity
, office_name
nvarchar(40) not
null
, office_address
nvarchar(255) not
null
, phone
varchar(20
),);
接下來,將一些行插入dob.offices表中:
into
dbo.offices(office_name, office_address)
values('
silicon valley
','400 north 1st street, san jose, ca 95130'),
('sacramento
','1070 river dr., sacramento, ca 95820
');然後,建立乙個儲存過程,按辦公室id查詢辦公室:
proc
usp_get_office_by_id(
@idint
) as
begin
select
*from
dbo.offices
where
office_id
=@id
;end;
之後,將此dbo.offices
表轉移到sales
架構:
schema sales transfer object::dbo.offices;
如果執行usp_get_office_by_id
儲存過程,sql server將發出錯誤:
最後,手動修改儲存過程以反映新的架構:
proc
usp_get_office_by_id(
@idint
) as
begin
select
*from
sales.offices
where
office_id
=@id
;end;
如何使用sql serverdrop schema
語句從資料庫中刪除架構。
該drop schema
語句允許您從資料庫中刪除架構。
下面顯示了該
drop schema
語句
的語法:
schema
[if exists
] schema_name;
使用以下語法:
首先,建立乙個名為logistics
的新架構
:schema
logistics;
go接下來,在logistics架構內部建立乙個名為delivery的新錶:
table
logistics.deliveries
( order_id
intprimary
key,
delivery_date date
notnull
, delivery_status
tinyint
notnull
);然後,刪除架構logistics
:
schema logistics;
sql server發出以下錯誤,因為架構不為空。
之後,刪除**logistics.deliveries:
drop最後,table logistics.deliveries;
drop schema
再次發出以刪除logistics
架構:
schema
ifexists logistics;
現在,logistics
架構已從資料庫中刪除。
Sqlserver 增刪改查 刪
我們就以院系,班級,學生來舉例。create table dbo yuanxi id int identity 1,1 not null,學校id 自增量 yuanxiname varchar 50 null,院系名字 create table dbo class id int identity 1...
SQL Server 更改隔離級
更改sql server 事務隔離級別為read committed snapshot 1 檢視當前資料庫的隔離級別 dbcc useroptions isolation level 這項的值就代表當前的隔離級別 2 更改資料庫 必須關閉除了當前連線之外的所有的資料庫連線 alter databas...
表的建立 更改和刪除
必須給出以下資訊 1 新錶的名字 2 表列的名字和定義,用逗號分隔 e.g.create table customers cust id int not null autoz increment,cust name char 50 not null primary key cust id engin...