--> Title  : SQL Server2005 Synonym的使用

--> Author : wufeng4552

--> Date   : 2009-10-30

1.Synonym的概念 
   Synonym(同义词)是SQL Server 2005的新特性。可以简单的理解Synonym为其他對象的别名。

語法

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR < object >

< object > :: =

{

[ server_name.[ database_name ] . [ schema_name_2 ].| database_name . [ schema_name_2 ].| schema_name_2. ]object_name

}

在建立同義字時,基底物件不需要存在。在執行階段,SQL Server 會檢查基底物件是否存在。

各參數涵義如下:

schema_name_1 :指定建立同義字的結構描述。如果未指定 schema,SQL Server 2005 會使用目前使用者的預設結構描述。

synonym_name :這是新同義字的名稱。

server_name :這是基底物件所在的伺服器名稱。

database_name :這是基底物件所在的資料庫名稱。如果未指定 database_name,就會使用目前資料庫的名稱。

schema_name_2 :這是基底物件的結構描述名稱。如果未指定 schema_name,就會使用目前使用者的預設結構描述。

object_name :這是同義字參考的基底物件名稱。

注:

若要使用给定架构创建同义词,用户必须满足以下条件:

(1)拥有此架构或具有 ALTER SCHEMA 权限以

(2)具有 CREATE SYNONYM 权限。

(3)是 db_owner 的成员。

(4)是 db_ddladmin 固定数据库角色的成员

可以为下列对象类型创建同义词:
程序集 (CLR) 存储过程; 程序集 (CLR) 表值函数
程序集 (CLR) 标量函数; 程序集聚合 (CLR) 聚合函数
复制筛选过程; 扩展存储过程
SQL 标量函数;SQL 表值函数SQL 内联表值函数;
SQL 存储过程视图; 表(用户定义)
2.Synonym的实际应用

在你的程序发布的时候,你突然发现你需要更改某个表名,或字段名。而你的程序已经不可能修改。这时,怎么办呢?那就创建Synonym吧。当然,在sql2000时代,你可以使用view来做这个事情,或sprocs或udf等。但Synonym有其它所不能的功能,那就是跨数据库,跨服务器。

----------------------------------------------------------------------------

--Synonym在同一服务器上的不同数据库

use db_study

go

if object_id('MyCustomers')is not null drop synonym MyCustomers

go

--為表建立別名

Create Synonym MyCustomers For Northwind.dbo.Customers

--查詢

go

select * from mycustomers

--切換數據庫

use Northwind

go

--建立函數

if object_id('synonym_UF')is not null drop function synonym_UF

go

create function synonym_UF()

returns table

as

return(select * from Customers)

go

----為函數建立別名

use db_study

go

if object_id('synonym_uf')is not null drop synonym synonym_uf

go

create synonym synonym_uf for Northwind.dbo.synonym_UF

go

--調用函數

select * from synonym_uf()

--建立存儲過程

if object_id('synonym_PRO')is not null drop proc synonym_PRO

go

create proc synonym_PRO

as

select * from Customers

go

----為存儲建立別名

use db_study

go

if object_id('synonym_PRO')is not null drop synonym synonym_PRO

go

create synonym synonym_PRO for Northwind.dbo.synonym_PRO

go

--執行存儲過程

exec synonym_PRO

--同樣支持動態

if object_id('MyCustomers')is not null drop synonym MyCustomers

go

--為表建立別名

exec('Create Synonym MyCustomers For Northwind.dbo.Customers')

--查詢

go

select * from mycustomers

----------------------------------------------------------------------------

---Synonym在不同服务器上的不同数据库

--先建立鏈結服務器

--创建链接服务器

exec sp_dropserver  'ITSV', 'droplogins'

exec sp_addlinkedserver   'ITSV', ' ', 'SQLOLEDB', '192.168.12.***/wip'

exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, 'sa', 'sun*****%'

go

Create Synonym MyCustomers For ITSV.Northiwind.dbo.Customers

go

Select * from MyCustomers

sql 2005 同义词的更多相关文章

  1. SQL 2005 中查询或执行另外的数据库操作的方法

    原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据, ...

  2. SQL 2005中char、nchar、varchar、ntext and nvarchar(max)的区别

    原文地址 MS SQL大值数据类型varchar(max).nvarchar(max).varbinary(max) 在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max). ...

  3. SQL 2005远程连接是出错(provider: SQL 网络接口, error: 28 - 服务器不支持请求的协议

    SQL 2005远程连接是出错(provider: SQL 网络接口, error: 28 - 服务器不支持请求的协议 sql远程连接服务器网络sql serversqlserver 解决方法:在服务 ...

  4. SQL 2005 安装数据库镜像教程

    最近在搞在SQL 2005安装数据库镜像,中间遇到不少的错误,在此归纳总结,以方便有需要的朋友参考. 直接上脚本,主机部分: ---修改数据库为完整恢复模式USE master;ALTER DATAB ...

  5. SQL 2005/2008 连接SQL 2000报18456错误

    在看文章前,你先看看下面这两个问题,考考你对MSSMS工具的掌握情况: 1: SQL 2005/2008 能连接 SQL 2000数据库服务器吗? 2: SQL 2000 能连接SQL 2005/20 ...

  6. SQL Server:查看数据库用户权限(SQL 2005)

    1. 查看 SQL 2005 用户所属数据库角色 use yourdb go select DbRole = g.name, MemberName = u.name, MemberSID = u.si ...

  7. windows 10 安装 sql 2005 安装失败

    windows 10 安装 sql 2005 安装失败 网上的方法记录: 安装中无法启动需要先用sp4的补丁文件sqlos.dll,sqlservr.exe 替换D:\Program Files (x ...

  8. SQL 2005示例库(转载)

    sql2005数据库实例 从网上找还得麻烦,转了过来,点击就可以下载! 在学习SQL2005中离开不了SQL2005示例数据库,AdventureWorks数据库下载安装,,northwind数据库下 ...

  9. MS SQL数据批量备份还原(适用于MS SQL 2005+)

    原文:MS SQL数据批量备份还原(适用于MS SQL 2005+) 我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较 ...

随机推荐

  1. 【nodejs】关于 alert 和 document

    Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Windows\system32>n ...

  2. iOS多线程编程Part 3/3 - GCD

    前两部分介绍了NSThread.NSRunLoop和NSOperation,本文聊聊2011年WWDC时推出的神器GCD.GCD: Grand Central Dispatch,是一组用于实现并发编程 ...

  3. Careercup - Facebook面试题 - 5765850736885760

    2014-05-02 10:07 题目链接 原题: Mapping ' = 'A','B','C' ' = 'D','E','F' ... ' = input: output :ouput = [AA ...

  4. Maven搭建webService (二) 创建服务端---使用web方式发布服务

    今天和大家分享 使用 web方式发布 webService 服务端.客户端 1.首先创建 一个web工程(增加Maven依赖) 2.增加Maven依赖包,如下: <!-- spring core ...

  5. oracle——DDL

    一.一些概念 定义: 主键--唯一标识一条记录,不能有重复的,不允许为空 外键--表的外键是另一表的主键, 外键可以有重复的, 可以是空值 索引--该字段没有重复值,但可以有一个空值 作用: 主键-- ...

  6. MySQL主从关系设置(转)

    来源:LAMP兄弟连 作者:李恺 http://***/php/bencandy.php?fid=70&id=635 要做MySQL主从关系的设置,那么就得有两台MySQL主机.所以在开始之前 ...

  7. 【Android自学之旅】 Android开发环境的搭建

    [Android自学之旅] Android开发环境的搭建 搭建参考教程: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-do ...

  8. 【WCF--初入江湖】08 并发与实例模式

    08 并发与实例模式 1. 实例上下文模式   一个服务代理:servicePoxy ChannelFactory<IService1> factoryservicel = new Cha ...

  9. Ignore files which are already versioned

    If you accidentally added some files which should have been ignored, how do you get them out of vers ...

  10. HDU4276 The Ghost Blows Light SPFA&&树dp

    题目的介绍以及思路完全参考了下面的博客:http://blog.csdn.net/acm_cxlove/article/details/7964739 做这道题主要是为了加强自己对SPFA的代码的训练 ...