sql 2005 同义词
--> 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 同义词的更多相关文章
- SQL 2005 中查询或执行另外的数据库操作的方法
原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据, ...
- SQL 2005中char、nchar、varchar、ntext and nvarchar(max)的区别
原文地址 MS SQL大值数据类型varchar(max).nvarchar(max).varbinary(max) 在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max). ...
- SQL 2005远程连接是出错(provider: SQL 网络接口, error: 28 - 服务器不支持请求的协议
SQL 2005远程连接是出错(provider: SQL 网络接口, error: 28 - 服务器不支持请求的协议 sql远程连接服务器网络sql serversqlserver 解决方法:在服务 ...
- SQL 2005 安装数据库镜像教程
最近在搞在SQL 2005安装数据库镜像,中间遇到不少的错误,在此归纳总结,以方便有需要的朋友参考. 直接上脚本,主机部分: ---修改数据库为完整恢复模式USE master;ALTER DATAB ...
- SQL 2005/2008 连接SQL 2000报18456错误
在看文章前,你先看看下面这两个问题,考考你对MSSMS工具的掌握情况: 1: SQL 2005/2008 能连接 SQL 2000数据库服务器吗? 2: SQL 2000 能连接SQL 2005/20 ...
- SQL Server:查看数据库用户权限(SQL 2005)
1. 查看 SQL 2005 用户所属数据库角色 use yourdb go select DbRole = g.name, MemberName = u.name, MemberSID = u.si ...
- windows 10 安装 sql 2005 安装失败
windows 10 安装 sql 2005 安装失败 网上的方法记录: 安装中无法启动需要先用sp4的补丁文件sqlos.dll,sqlservr.exe 替换D:\Program Files (x ...
- SQL 2005示例库(转载)
sql2005数据库实例 从网上找还得麻烦,转了过来,点击就可以下载! 在学习SQL2005中离开不了SQL2005示例数据库,AdventureWorks数据库下载安装,,northwind数据库下 ...
- MS SQL数据批量备份还原(适用于MS SQL 2005+)
原文:MS SQL数据批量备份还原(适用于MS SQL 2005+) 我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较 ...
随机推荐
- iOS多线程编程Part 3/3 - GCD
前两部分介绍了NSThread.NSRunLoop和NSOperation,本文聊聊2011年WWDC时推出的神器GCD.GCD: Grand Central Dispatch,是一组用于实现并发编程 ...
- Oracle 存储过程实例2
--创建存储过程 CREATE OR REPLACE PROCEDURE xxxxxxxxxxx_p ( --参数IN表示输入参数,OUT表示输入参数,类型可以使用任意Oracle中的合法类型. is ...
- MATLAB——axis
MATLAB——axis axis中文为“轴”之意,在matlab中用于控制坐标轴的范围和样式(颜色等). axis([XMIN XMAX YMIN YMAX]) 设置当前所绘图像的x轴和y轴的范围. ...
- 关闭VS时, 每次都 会弹出 保存以下各项的更改吗?
如果是添加项目, 或修改了解决方案的配置, 会弹出这个是正常的. 如果在没有修改的情况下还这样就是有问题的. 原因: 在Vs中安装了PowerDesigner插件, 并在VS中点了该插件的东西 ...
- uva 10131
DP 先对大象体重排序 然后寻找智力的最长升序子列 输出路径.... #include <iostream> #include <cstring> #include &l ...
- Appium环境配置
一.JDK下载.安装及其环境配置 1.下载.安装略过…… 2.环境配置,以jdk-8u45为例,默认安装在 C:\Program Files\Java\jdk1.8.0_45\路径下. 下面设置环境变 ...
- 比較Backbone.js, Angular.js, Ember.js, Knockout.js 心得
還記得第一次寫網站的時候,我無意間寫成了 SPA(single page application),當時還沒有SPA這個詞,後來因為廣告主需要不同 url location 頁面的廣告展示,只好把部分 ...
- Git PHP提交
做了个小的DEMO,可以查看: https://github.com/feixiang/webgit.git 这几天一直在郁闷的事情. Git在shell里面执行得好好的,apache运行用户也改成了 ...
- HDU 3507 Print Article(斜率优化DP)
题目链接 题意 : 一篇文章有n个单词,如果每行打印k个单词,那这行的花费是,问你怎么安排能够得到最小花费,输出最小花费. 思路 : 一开始想的简单了以为是背包,后来才知道是斜率优化DP,然后看了网上 ...
- Android SeekBar的OnSeekBarChangeListener
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { /** * 拖动中数值的时候 * @param f ...