--> 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. cocos2dx中常见的类及类继承关系

    场景:CCScene,继承自CCNode,几乎完全等于CCNode类 CCNode继承自CCObject,CCObject是真正意义上的父类,CCObject又继承自CCCopying类,CCCopy ...

  2. C# 越来越复杂了

    自从三年前来到现在的公司以后,基本上不怎么使用.NET进行开发了.但最近因为公司有个CRM的项目,所以只有重新检起.NET进行开发. 因为近3年没有搞.NET的开发了,因此也不敢乱整个框架,在看了一周 ...

  3. codeforces GYM 100114 J. Computer Network 无相图缩点+树的直径

    题目链接: http://codeforces.com/gym/100114 Description The computer network of “Plunder & Flee Inc.” ...

  4. Win7(包括32和64位)使用GitHub

    关于安装路径:32位可选择安装目录,但64位建议使用默认安装目录,否则Git Extensions配置会出问题 安装参考网址 http://code.google.com/p/tortoisegit/ ...

  5. uva 10626

    dp 记忆化搜索 3个1元和1个10元的情况不能少 #include <cstdio> #include <cstdlib> #include <cmath> #i ...

  6. java 页面换行处理

    在taxtarea中输入的文本.如果含有回车或空格.在界面上显示的时候则不哪么正常.回车消失了,空格变短了. 如何解决这个问题呢.有2种方法. 1.使用<pre>标签 w3c对pre元素是 ...

  7. Unity3d 接入 移动MM支付SDK(2.3) 全攻略

    原地址:http://blog.csdn.net/dingxiaowei2013/article/details/26842177 先将例程运行起来 下载例程(csdn积分不够上传不了,只能用百度网盘 ...

  8. 利用Qemu Guest Agent (Qemu-ga) 实现 Openstack 监控平台

    经常使用vmWare的同学都知道有vmware-tools这个工具,这个安装在vm内部的工具,可以实现宿主机与虚拟机的通讯,大大增强了虚拟机的性能与功能, 如vmware现在的Unity mode下可 ...

  9. Selenium如何使用自定义的Firefox配置文件?

    一.自动保存文件 import os from selenium import webdriver fp = webdriver.FirefoxProfile() fp.set_preference( ...

  10. POJ1573Robot Motion

    http://poj.org/problem?id=1573 #include<stdio.h> #include<stdlib.h> #include<cstring& ...