由淺入深講解SQL Server 2005數據庫中Synonym的使用方法

數據庫中Synonym的使用方法:

1.Synonym的概念

Synonym(同義詞)是SQL Server 2005的新特性。推出已經有幾年的時間了。我們可以簡單的理解Synonym爲其他表的別名。本文中使用Northwind數據庫爲示例:

Create Synonym MyCustomers FOR Customers

爲Customers表創建一個Synonym,叫MyCustomers。 我們可以把這個MyCustomers當作一個普通的表,可以對它進行查詢,更新,刪除和插入。例如:

查詢: Select * from MyCustomers.

插入: Insert into MyCustomers (CustomersID, CompanyName) values ('Tom', 'MS')

所有的操作,和普通的表沒有區別。

2.Synonym的實際應用

在你的程序發布的時候,你突然發現你需要更改某個表名,或字段名。而你的程序已經不可能修改。這時,怎麽辦呢?那就創建Synonym吧。當然,在sql2000時代,你可以使用view來做這個事情,或sprocs或udf等。但Synonym有其它所不能的功能,那就是跨數據庫,跨服務器。

3.Synonym在同一服務器上的不同數據庫

對于同一服務器上的不同數據庫,我們可以使用Synonym,將其他數據庫中的表或view或sprocs及udf在本數據庫中映射別名。這樣,就可以不用更改連接字符串,而在當前對話數據庫的情況下,獲取其他數據庫的數據,並對它進行,查詢,更新,刪除和插入工作。

先假設已經存在Northwind數據庫,然後,再建一個數據庫。我們在新的數據庫上,創建Customer表的Synonym.

Create Synonym MyCustomers For Northiwind.dbo.Customers

需要大家注意的是,後面需要寫清那個數據庫,那個表,中間dbo爲表的owner.

然後,運行 Insert into MyCustomers (CustomersID, CompanyName) values ('Tom', 'MS')

和Select * from MyCustomers. 看看是不是真的像普通表那樣。

4.Synonym在不同服務器上的不同數據庫

假設一下,我們有一台數據庫服務器叫SqlTest。上面有個數據庫叫Northwind。我們本地還有一台數據庫服務器。叫LocalTest. 其上面有一數據庫叫Northwind或其他什麽的。突然有一天,爲了使本地的數據庫跑的更快,本地的老數據被移到SqlTest上去了,本地只保存最近更新的。那老數據總還是要用的,怎麽樣實現不同服務器之間的數據操作呢?那就用Synonym吧。如下:

Create Synonym MyCustomers For SqlTest.Northiwind.dbo.Customers

你可能會發現,只是在上面這個例子的基礎上,加了個機器名字。就這麽簡單?不是吧?那台服務器還不一定知道用戶名和密碼呢。對,是的,還要在本地服務器上,注冊一下遠程的服務器。使用sp_addlinkedserver,此存儲過程定義如下所示:

Exec sp_droplinkedsrvlogin daval\sql2005,Null

Exec sp_dropserver daval\sql2005

EXEC sp_addlinkedserver

@server='daval\sql2005',--被訪問的服務器別名

@srvproduct='',

@provider='SQLOLEDB',

@datasrc='D12' --要訪問的服務器

EXEC sp_addlinkedsrvlogin

'daval\sql2005', --被訪問的服務器別名

'false',

NULL,

'sa', --賬號

'123456' --密碼

Select * from MyCustomers

講解七種數據庫中Select Top的使用方法
Select Top在不同數據庫中的使用用法: 1. Oracle數據庫 SELECT * FROM TABLE1 WHERE ROWNUM<=N2. Infomix數據庫 SELECT FIRST N * FROM TABLE13. DB2數據庫 SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ...查看完整版>>講解七種數據庫中Select Top的使用方法
 
在SQL Server數據庫中實現數據的轉移
以SQL Server中的Northwind示範數據庫爲例,利用DTS設計器,進行數據的轉移。 轉移任務的步驟: ◆1. 新建目的數據庫NOrthwind_DTS ◆2. 激活DTS設計器 在Enterprise Manager上右擊數據轉換服務圖表->新建包,將...查看完整版>>在SQL Server數據庫中實現數據的轉移
 
實例講解兩台SQL Server數據同步解決方案
複制的概念   複制是將一組數據從一個數據源拷貝到多個數據源的技術,是將一份數據發布到多個存儲站點上的有效方式。使用複制技術,用戶可以將一份數據發布到多台服務器上,從而使不同的服務器用戶都可以在權限的許...查看完整版>>實例講解兩台SQL Server數據同步解決方案
 
Sql Server數據庫觸發器實例講解
定義: 何爲觸發器?在SQL Server裏面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程序。觸發器是一個特殊的存儲過程。 常見的觸發器有三種:分別應用于Insert , Update , Delete 事件。(SQL Se...查看完整版>>Sql Server數據庫觸發器實例講解
 
SQL Server 2000/2005下將數據導出到文本
問題:如何將一個數據庫中(存入十多萬條數據) 的數據按照指定列分類導出成文本文件? 解答:這種情況需要使用BCP工具,並且這種工具是在SQL2000/2005下的一個“命令提示”工具下使用。具體的使用方法如下: bcp "s...查看完整版>>SQL Server 2000/2005下將數據導出到文本
 
sql server 2005 數據庫的檢查與修複
檢查:dbcc checkdb('dbname')修複:dbcc checkdb('dbname',repair_fast)、dbcc checkdb('dbname',repair_rebuild)有損修複:dbcc checkdb('dbname',repair_allow_data_loss)許多次運行...查看完整版>>sql server 2005 數據庫的檢查與修複
 
利用sql server 2005數據庫郵件發送電子郵件
隨著技術的不斷進步,我們需要知道在你的信息系統發生了什麽,爲了滿足這種日益增長的需求要求有更高級的方法。能夠迅速和簡單地了解形勢,尤其是了解潛在的問題,這對于我們非常重要。微軟不斷的生産新産品來傳遞這...查看完整版>>利用sql server 2005數據庫郵件發送電子郵件
 
SQL Server 2005數據加密技術應用研究
SQL Server 2005數據加密技術應用研究
  摘要 數據加密是SQL Server 2005新增的數據安全特性,這對應用程序開發者來說是非常重要的改進。本文從程序開發者角度,探討SQL Server 2005數據加密特性以及如何運用該特性保證系統的數據安全。  關鍵詞 SQL ...查看完整版>>SQL Server 2005數據加密技術應用研究
 
使用 SQL Server 2005 數據庫鏡像功能時需要考慮的問題
簡介目前,Microsoft 支持策略不適用于 Microsoft SQL Server 2005 中的數據庫鏡像功能。默認情況下,數據庫鏡像是禁用的。但是,只需使用跟蹤標志 1400 作爲啓動參數,您就可以出于評估目的而啓用數據庫鏡像。不應該...查看完整版>>使用 SQL Server 2005 數據庫鏡像功能時需要考慮的問題
 
 
回到王朝網路移動版首頁