成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解在不同的SQL Server數據庫之間查詢數據

數據庫 SQL Server 數據庫運維
如果,你想在一臺數據庫服務器上,查詢另一個臺數據服務器的數據該如何做呢?如果,你想在同一臺數據服務器上,在不同的數據庫之間查詢數據,又該怎么辦呢?那就讓我為你介紹Synonym和openquery吧。

1, 什么是Synonym

Synonym(同義詞)是Sql 2005的新特性。推出已經好幾年了。你可以簡單的理解Synonym 為其他表的別名。我們使用Northwind數據庫為例。比如,看下面的例子

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.

[[2352]]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,次存儲過程定義如下:

sp_addlinkedserver [ @server = ] 'server'
    
[ , [ @srvproduct = ] 'product_name' ]
    [ , [ @provider = ] 'provider_name' ]
    [ , [ @datasrc = ] 'data_source' ]
    [ , [ @location = ] 'location' ]
    [ , [ @provstr = ] 'provider_string' ]
    [ , [ @catalog = ] 'catalog' ]

可以運行下面的腳本,將SqlTest注冊到本地

EXEC sp_addlinkedserver 
   @server = 'SqlTest',
   @provider = 'MSDASQL',
   @provstr = 'DRIVER={SQL Server};SERVER=SqlTest;UID=sa;PWD=;'

這樣,就可以把遠程數據庫當成本地的來使用。

5,Synonym的其他功能和用UI創建Synonym

Synonym不光可以對表創建,也可以為view,sprocs,以及udf創建相應的Synonym. 如圖:


Sql2005的Server Managerment Studio有這么一項,選擇后,會出現下面畫面。添入名稱等,選擇object的類型,你就可以選為View,Table, Sprocs和udf創建Synonym了。

6, openquery

相對于Synonym,OpenQuery相對來說,功能就弱了點。其只是在調用其它數據庫上的sprocs.比如

select * from openquery([SqlTest], 'exec northwind.dbo.
[Customers By City] @param1=N''London''')where CustomerID = 'AROUT'

這就是在執行SqlTest服務器上的,northwind數據庫下的,[Customers By City]的存儲過程。你可以在Linq To Sql進階系列(五)Store Procedure篇 一文中,獲得該存儲過程。openquery其***個參數為數據服務器的名稱。如果是異地的,也需要在本地注冊它,和Synonym相同。你也可以寫本地的機器名,那就成了本地跨數據庫的操作了。在上面的這個例子中,其語句中有London,是傳入存儲過程的值。因為其已經被 ' 引過,在openquery函數下,又要被 ' 引。所以,它兩頭加了兩個 ''。 如果有疑問,請參閱SQL 語句中特殊字符的處理及預防sql 注射

7, Linq 對Synonym的支持

目前SqlMetal和OR designer無法對Synonym做映射。但是,用戶依然可以通過手工修改dbml 達到映射的目的。Synonym在Linq中的使用。和其他表等沒有任何差別。

結論:通過Synonym,我們可以實現不同數據庫,以及不同服務器之間的數據分流。以達到平衡負載的目的,提高效率的目的。

【編輯推薦】

  1. SQL Server群集的幾個關鍵技巧
  2. SQL Server 2008深度應用
  3. 淺談配置SQL Server遠程備份的方法
責任編輯:彭凡 來源: cnblogs
相關推薦

2011-08-30 11:04:30

鏈接查詢內連接外連接

2021-03-18 08:20:19

SQLServer數據庫SQL

2010-06-30 16:48:19

SQL Server數

2011-08-04 15:55:25

SQL Server數

2011-05-18 10:36:21

數據庫數據導入

2010-07-15 17:28:50

SQL Server

2009-07-06 21:20:34

SQL Server數

2011-04-02 11:02:54

SQL Server數文件恢復

2011-08-24 12:49:56

SQL Server托管代碼

2011-08-19 14:53:02

SQL ServerDataRelatio

2011-04-01 13:21:26

SQL ServerOracle數據庫查詢優化

2011-08-22 11:39:53

SQL Server數PIVOT

2010-03-16 10:12:40

SQL Server

2011-08-11 09:12:31

SQL Server nolock

2011-08-25 13:41:50

SQL Server 變更跟蹤

2010-07-08 11:05:14

SQL Server數

2009-01-27 21:00:00

服務器數據庫SQL Server

2009-11-18 16:16:51

Oracle數據庫

2011-08-15 16:58:34

SQL Server遠程查詢批量導入數據

2011-03-28 12:33:09

SQL Server數據庫鏈接
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色射综合| 精品伊人久久 | 亚洲aⅴ | 91免费观看国产 | 91精品国产一区二区三区香蕉 | 久久av一区二区三区 | 激情综合五月天 | 午夜影晥 | 91国产在线播放 | 色性av| 国产在线精品一区二区三区 | 性国产xxxx乳高跟 | 视频一区二区国产 | 成人免费视频网站在线观看 | 精品一区二区av | 丝袜久久 | 久久综合久久自在自线精品自 | 欧洲性生活视频 | 国产精品久久久久久238 | 九色 在线 | 欧美日韩综合视频 | 91久久久久久久久久久 | 中文字幕第一页在线 | 婷婷色国产偷v国产偷v小说 | 亚洲综合免费 | 欧美在线a| 国产美女h视频 | 亚洲欧洲日韩精品 中文字幕 | 久久69精品久久久久久国产越南 | 亚洲在线 | 精品一区国产 | 免费艹逼视频 | 久草中文网 | 看羞羞视频 | 羞羞的视频在线观看 | 亚洲一区二区三区在线 | 欧美日韩在线免费观看 | 365夜爽爽欧美性午夜免费视频 | 欧美激情一区二区三区 | 一区二区福利视频 | 国产日本精品视频 |