程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 利用SQL Server 2005同義字縮短開發時間

利用SQL Server 2005同義字縮短開發時間

編輯:更多數據庫知識

 

本文主要介紹了SQL Server 2005的一個新對象“同義字”,它的作用是為一個已經存在的對象建立一個別名。比如,如果你有table的表,你可以建立一個叫做tl的同義字指向那個對象。這意味著你不用寫下面這個查詢:

 

SELECT * FROM table

只需要用以下代碼完成查詢:

 

SELECT * FROM tl

優點

 

前面的例子表明,你可以用同義字給名稱較復雜的對象建立一個更加易懂的名稱,從而簡化數據庫開發

同義字的主要優點在於,你可以用它在基本的對象和同義字間建立一個抽象層。例如,你可以建立一個名為SalesHistory的同義字,開發者在所有銷售報告中都要用到它。這個同義字可以通過一個連接服務器引用一個本地視圖或表,或一個遠程視圖或表。與數據復制組合使用時,這種同義字-對象關聯可以成為一個非常強大的工具。下面的例子說明了這個問題。

 

示例

 

由於業務和可擴展性需求不斷擴張,你認為最好是把SalesHistory表從當前的Inventory數據庫中刪除,把它放到一個名為SalesData的獨立數據庫中。在Inventory數據庫中有許多代碼引用SalesHistory表。多數代碼都是簡單的查詢,僅從SalesHistory表中讀取數據。由於項目最終期限很快就臨近,因此很難改變所有現有的代碼,讓其引用新數據庫中的表。以下我來說明如何使用一個同義字顯著縮短開發時間。

 

假設你已經把SalesHistory表復制到新的SalesData數據庫中,並對Inventory數據庫中當前的SalesHistory表進行了重命名。(我總是喜歡首先重命名我打算刪除的表。這使我有機會發現系統中由刪除表造成的錯誤。)

 

重命名SalesHistory表後,你可以建立一個引用你已經放到新數據庫中的SalesHistory表的同義字。其腳本如下:

 

USE Inventory

GO

CREATE SYNONYM SalesHistory

FOR SalesData.dbo.SalesHistory;

GO

 

 

 

這個同義字建立一個指向新SalesData數據庫的SalesHistory表的指針;但是,因為同義字位於Inventory數據庫中,且名為SalesHistory,那麼,任何對SalesHistory同義字執行的查詢或DML語句實際上是對SalesData數據庫的SalesHistory表執行操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved