SQL Server建立 更改和刪除架構

2022-01-26 05:51:08 字數 4584 閱讀 3930

sql server建立架構

學習如何使用sql servercreate schema在當前資料庫中建立新架構。

架構是包括表,檢視,觸發器,儲存過程,索引等

在內的資料庫物件的集合

。架構與稱為架構所有者的使用者名稱相關聯,該使用者名稱是邏輯上相關的資料庫物件的所有者。

架構始終屬於乙個資料庫。

另一方面,資料庫可以具有乙個或多個架構。

sql server提供了我們與具有相同名稱的內建資料庫使用者和角色,例如一些預先定義的架構:dboguestsys,和information_schema

請注意,sql server 

為系統物件

保留sysinformation_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架構後,您可以為架構建立物件。例如,以下語句建立乙個jobscustomer_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...