手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Mssql>列表

利用同义词简化SQL

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
一. 引言

  假如您曾使用SQL Server研发过任何软件,那么您肯定会习惯于使用四部分标识符来参考一个对象:

[[[server.][database].][schema_name].]object_name

  正如上面的方括号所显示的,该语法的不同部分能够被忽略,只要您提供足够的表达来无二义地标识您的对象即可。例如,下面任何这些表达都可能参考相同的对象:

Server1.AdventureWorks.Production.ProductCategory
AdventureWorks.Production.ProductCategory
AdventureWorks..ProductCategory
ProductCategory

  在大多数情况下,您能够仅使用三部分名字而忽略服务器名-除非您是在处理在一个连接的服务器上的对象。默认情况下,任何对象的上下文都是本地数据库-您的SQL语句在其中执行。但是,有些情况下,或更为准确地说,您必须使用这整个四部分命名(或称作一种全称限定名)。但是,在SQL Server 2005中,这种情况有所改变。

  二. 熟悉同义词

  SQL Server 2005引入了一个同义词的概念,这是个单部分的名字,他能够替换在许多SQL语句中的一个两、三或四部分的名字。使用同义词能够让您减少输入,而且还能提供一个抽象层来为您保护底层对象的改变。为了理解其工作原理,让我们先看一下创建同义词的语法。下面是CREATE SYNONYM语句的语法:

CREATE SYNONYM [schema_name.]synonym_name FOR object_name

  在此,object_name是个SQL Server对象(全称限定已足以能够标识出这个对象)的名字,而synonym_name是您想赋给他的新名字。假如您不想为同义词指定一种模式,那么SQL Server使用当前的用户的默认模式。当您创建同义词时,相应的对象无需存在,因为同义词是迟绑定的:当您实际上使用同义词时,SQL Server仅仅检查基对象。

  例如,在AdventureWorks示例数据库中,您能够以下列方式创建一个同义词:

CREATE SYNONYM ProdCat
FOR AdventureWorks.Production.ProductCategory

  之后,您能够继续使用在SQL语句中的同义词了。例如:

SELECT * FROM ProdCat

  图1显示出相应的结果:

点击放大此图片

  当您使用完一个同义词后,您能够使用DROP SYNONYM语句来去掉他,他具备您期望的语法格式:

DROP SYNONYM [schema_name.]synonym_name

[1] [2] [3] 下一页


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!