dbo是默認用戶也是架構


dbo是默認用戶也是架構
dbo作為架構是為了更好的與2000兼容,
在2000中DataBaseName.dbo.TableName解釋為:數據庫名.用戶名.表名,
在2005中DataBaseName.dbo.TableName解釋為:數據庫名.架構名.表名,
這樣2000中的代碼移植到2005中就不會報錯(dbo在2005中是默認的架構,創建表時,如不指定架構,則默認為屬於dbo為個架構)。
2000中:
dbo 是 database owner 的縮寫, 是數據庫對象所有者SQL SERVER 中的 對象的標准寫法是 databasename.databaseownername.objectname

  數據庫所有者 (dbo)  dbo 是具有在數據庫中執行所有活動的暗示性權限的用戶。將固定服務器角色 sysadmin 的任何成員都映射到每個數據庫內稱為 dbo 的一個特殊用戶上。另外,由固定服務器角色 sysadmin 的任何成員創建的任何對象都自動屬於 dbo。

在2005中:

    dbo是一個構架(schema),與sql2000不同的是,在sql2005中,表的調用格式如下:"數據庫名.構架名.表名",同一個用戶可以被授權訪問多個構架,也可以被禁止訪問某個或多個構架,這就是2005中提倡的"用戶與構架分離"的概念.
    在2005中,如果在創建表時沒有指定構架(schema),那么系統默認該表的構架是dbo,所以會出現很多表名前自動加上dbo.字符樣式.

什么時候使用:

    數據庫名.構架名.表名,這種方式在相同的數據服務器,但是所用表不在當前編碼的數據庫內。

    例1:在數據庫A中有表dbo.T1,B中有dbo.T2。     

    在數據庫B里調用T1這時候要寫成 select * from A.dbo.T1

     例2:使用鏈接數據庫的時候:

     SELECT * FROM [連接名].[數據庫名].[架構名].[表名]
     SELECT * FROM testlink.test.dbo.t1


免責聲明!

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



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