详解在不同的SQLServer数据库之间查询数据计算机等级考试

文章作者 100test 发表时间 2009:05:07 17:47:57
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  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.
  sp_addlinkedserver [ @server = ] server
  可以运行下面的脚本,将SqlTest注册到本地
  EXEC sp_addlinkedserver
  @server = SqlTest,
  @provider = MSDASQL,
  @provstr = DRIVER={SQL Server}.SERVER=SqlTest.UID=sa.PWD=.
  这样,就可以把远程数据库当成本地的来使用。
  4,Synonym的其他功能和用UI创建Synonym
  Synonym不光可以对表创建,也可以为view,sprocs,以及udf创建相应的Synonym. 如图:
  Sql2005的Server Managerment Studio有这么一项,选择后,会出现下面画面。添入名称等,选择object的类型,你就可以选为View,Table, Sprocs和udf创建Synonym了。
  5, openquery
  相对于Synonym,OpenQuery相对来说,功能就弱了点。其只是在调用其它数据库上的sprocs.比如
  0select * from openquery([SqlTest], exec northwind.dbo.
  [Customers By City] @param1=NLondon)where CustomerID = AROUT
  这就是在执行SqlTest服务器上的,northwind数据库下的,[Customers By City]的存储过程。你可以在Linq To Sql进阶系列(五)Store Procedure篇 一文中,获得该存储过程。openquery其第一个参数为数据服务器的名称。如果是异地的,也需要在本地注册它,和Synonym相同。你也可以写本地的机器名,那就成了本地跨数据库的操作了。在上面的这个例子中,其语句中有London,是传入存储过程的值。因为其已经被 引过,在openquery函数下,又要被 引。所以,它两头加了两个 。 如果有疑问,请参阅SQL 语句中特殊字符的处理及预防sql 注射
  6, Linq 对Synonym的支持
  目前SqlMetal和OR designer无法对Synonym做映射。但是,用户依然可以通过手工修改dbml 达到映射的目的。Synonym在Linq中的使用。和其他表等没有任何差别。
  结论:通过Synonym,我们可以实现不同数据库,以及不同服务器之间的数据分流。以达到平衡负载的目的,提高效率的目的。

  特别推荐:

  2009年9月全国计算机等级考试时间及科目预告

  2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛

  2009年全国计算机等级考试报名信息汇总

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  2009年上半年全国计算机二级考试试题及答案

  2009年上半年全国计算机等级考试试题答案汇总



相关文章


详解在不同的SQLServer数据库之间查询数据计算机等级考试
计算机三级:动态数据仓库设计与应用浅谈计算机等级考试
计算机三级:SQLServer置疑数据库解决方法计算机等级考试
浅谈MySQL存储引擎选择InnoDB还是MyISAM计算机等级考试
计算机三级:批量删除sql中被注入的恶意代码计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛