日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

由浅入深讲解数据库中Synonym的使用方法

發布時間:2023/12/31 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 由浅入深讲解数据库中Synonym的使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Synonym的概念

  Synonym(同義詞)是SQLServer2005的新特性。推出已經有幾年的時間了。我們可以簡單的理解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 ForSQLTest.Northiwind.dbo.Customers

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

  Exec sp_droplinkedsrvlogin davalSQL2005,Null

  Exec sp_dropServerdavalSQL2005

  EXEC sp_addlinkedServer

  @Server='davalSQL2005',--被訪問的服務器別名

  @srvproduct='',

  @provider='SQLOLEDB',

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

  EXEC sp_addlinkedsrvlogin

  'davalSQL2005', --被訪問的服務器別名

  'false',

  NULL,

  'sa', --賬號

  '123456' --密碼

  Select * from MyCustomers

例如

Exec sp_droplinkedsrvlogin DB98,Null
Exec sp_dropServer DB98
EXEC sp_addlinkedServer
@Server='DB98',--被訪問的服務器別名
@srvproduct='DB98',
@provider='SQLOLEDB',
@datasrc='10.72.240.121' --要訪問的服務器的ip地址
 
EXEC sp_addlinkedsrvlogin
'DB98', --被訪問的服務器別名
'false', NULL,
'oaflow', --賬號
'123456' --密碼

總結

以上是生活随笔為你收集整理的由浅入深讲解数据库中Synonym的使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。