网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.SQL Server 2005中利用xml拆分字.
.得出SQL语句的执行时间的方法.
.数据库快照,自定义函数与计算列的.
.MS SQL用ROWCOUNT解决TOP子句不支.
.讲解V$Datafile_Header相关字段的.
.经常用到的交叉表问题,一般用动态.
.讲解fedora4环境下安装ASE15的具.
.用一条SQL实现:一行多个字段数据.
.如何在应用程序中避免死锁问题?.
.通过备份数据库恢复SharePoint文.
.SQL Server导入excel数据之Bug!.
.用SQL语句完成SQL Server数据库的.
.PL/SQL开发中动态SQL的使用方法.
.设计数据库之经验谈.
.用SQL Server Everywhere保存离线.
.一个用于跟踪和发现程序错误的触.
.使用索引调节向导调整应用程序的.
.SQL Server数据库LOG丢失后应当如.
.不能安装SQL Server 2005的问题及.
.考虑SQL Server安全时所应注意的.

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

发表日期:2008-4-30


数据库中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
上一篇:SQL Sever 2000中的前触发器和后触发器 人气:1580
下一篇:用dbschema工具导出Informix数据库的结构 人气:1304
浏览全部SQL Server 2005的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐