仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 784|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL编程:SQL Server的链接服务器手艺小结

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这些过程被存储和运行在数据库服务器上,以减少在客户端的处理过程,从而最大限度地提高了处理能力,因为通常情况下数据库服务器会运行地更快。存储过程并不是MySQL独有的功能,但是这个最近新增加的功能使得这个数据库比以前更具吸引力了。server|服务器|链接1、利用MicrosoftOLEDBProviderForODBC链接MySQL
安装MySQL的ODBC驱动MyODBC
1、为MySQL创建一个ODBC体系数据源,比方:选择数据库为test,数据源称号为
myDSN
2、创建链接数据库
EXECsp_addlinkedserver@server=MySQLTest,@srvproduct=MySQL,
@provider=MSDASQL,@datasrc=myDSN
GO
EXECsp_addlinkedsrvlogin
@rmtsrvname=MySqlTest,@useself=false,@locallogin=sa,@rmtuser=mys
ql的用户名,@rmtpassword=mysql的暗码
3、查询数据
SELECT*FROMOPENQUERY(MySQLTest,select*from表)
上面这个不可:
SELECT*FROMOPENQUERY(MySQLTest,表)
注重:不克不及间接用select*from链接服务器名.数据库名.用户名.表(或视图)
四部分称号查询数据,多是个Bug.

2、利用MicrosoftOLEDBProviderForORACLE链接ORACLE
1、创建链接数据库
sp_addlinkedserver别号,Oracle,MSDAORA,服务名
GO
EXECsp_addlinkedsrvlogin@rmtsrvname=别号
,@useself=false,@locallogin=sa,@rmtuser=oracle用户名
,@rmtpassword=暗码
2、查询数据
SELECT*FROM别号..用户名.表(视图)
注重:四部分称号全体用年夜写
3、实行存储历程
利用OPENQUERY:
SELECT*
FROMOPENQUERY(别号,exec用户名.存储历程名)

3、设置链接服务器以会见格局化文本文件
用于Jet的MicrosoftOLEDB供应程序可用于会见并查询文本文件。
若要间接创立会见文本文件的链接服务器而不将文件链接为Access.mdb文件中
的表,请实行sp_addlinkedserver,以下例所示。
供应程序是Microsoft.Jet.OLEDB.4.0,供应程序字符串为"Text"。数据源是包
含文本文件的目次的完全路径称号。schema.ini文件(形貌文本文件的布局)必
须与此文本文件存在于不异的目次中。有关创立schema.ini文件的更多信息,
请拜见Jet数据库引擎文档。
--Createalinkedserver.
EXECsp_addlinkedservertxtsrv,Jet4.0,
Microsoft.Jet.OLEDB.4.0,
c:datadistqry,
NULL,
Text
GO
--Setuploginmappings.
EXECsp_addlinkedsrvlogintxtsrv,FALSE,NULL,Admin,NULL
GO
--Listthetablesinthelinkedserver.
EXECsp_tables_extxtsrv
GO
--Queryoneofthetables:file1#txt
--usinga4-partname.
SELECT*
FROMtxtsrv...[file1#txt]
4、链接SQLServer服务器:
1、利用ODBC的MicrosoftOLEDB供应程序
EXECsp_addlinkedserver别号,,MSDASQL,NULL,NULL,DRIVER={SQL
Server};SERVER=远程名;UID=用户;PWD=暗码;
假如加上参数@catalog,能够指定命据库
execsp_addlinkedsrvlogin@rmtsrvname=别号
,@useself=false,@locallogin=sa,@rmtuser=sa,@rmtpassword=暗码

2、利用SQLServer的MicrosoftOLEDB供应程序
execsp_addlinkedserver@server=别号
,@provider=sqloledb,@srvproduct=,@datasrc=远程服务器名
execsp_addlinkedsrvlogin
@rmtsrvname=wzb,@useself=false,@locallogin=sa,@rmtuser=sa,@rmtp
assword=暗码
然后你就能够以下:
select*from别号.库名.dbo.表名
insert库名.dbo.表名select*from别号.库名.dbo.表名
select*into库名.dbo.新表名from别号.库名.dbo.表名
go
例1、
此示例在SQLServer的实例上创立一台名为S1_instance1的链接服务器,
该服务器利用SQLServer的MicrosoftOLEDB供应程序。
EXECsp_addlinkedserver@server=S1_instance1,@srvproduct=,
@provider=SQLOLEDB,
@datasrc=S1instance1
例2、
--创建链接服务器
EXECsp_addlinkedserverxiaoming,,MSDASQL,NULL,NULL,DRIVER={SQL
Server};SERVER=192.168.0.1;UID=sa;PWD=123;
--创建链接服务器登录映照
execsp_addlinkedsrvlogin
@rmtsrvname=xiaoming,@useself=false,@locallogin=sa,@rmtuser=sa,
@rmtpassword=123
go
--查询数据
select*fromxiaoming.schooladmin.dbo.agent
--删除链接服务器登录映照和链接服务器:
execsp_droplinkedsrvloginxiaoming,sa
execsp_dropserverxiaoming

注重事项:
SETIDENTITY_INSERT[database.[owner.]]{table}{ON|OFF}
以是不克不及经由过程毗连服务器设置此属性
into也存在如许的成绩
select*intoxiaoming.northwind.dbo.ttfrom
xiaoming.northwind.dbo.tt
5、设置链接服务器以会见Access数据库
利用用于Jet的MicrosoftOLEDB供应程序
此示例创立一台名为test的链接服务器。
申明本示例假定已安装MicrosoftAccess和示例Northwind数据库,且
Northwind数据库驻留在C:。

USEmaster
GO
--Tousenamedparameters:
EXECsp_addlinkedserver
@server=test,
@provider=Microsoft.Jet.OLEDB.4.0,
@srvproduct=OLEDBProviderforJet,
@datasrc=C:Northwind.mdb
GO
--ORtousenonamedparameters:
USEmaster
GO
EXECsp_addlinkedserver
test,
OLEDBProviderforJet,
Microsoft.Jet.OLEDB.4.0,
C:Northwind.mdb
GO
利用
select*fromtest...表名
6、毗连SYBASE
--起首,你要在SQL服务器上装上会见sybase的客户端
--创立链接服务器
execsp_addlinkedserverSybase1,,MSDASQL,NULL,NULL
,Driver={SybaseSystem
11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;
利用:
select*fromSybase1.hisdb.dbo.table1
办法二
利用ODBC
SQLServer到SYBASE毗连服务器的完成

作者:CCBZZP

本文的测试情况为:
操纵体系:WINDOWS2000SERVER(繁系统统)
安装数据库:SQLSERVER2000(英文版)和SYBASE8.0客户端(英文版)

详细完成步骤:
1.请求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。
2.设置windows的ODBC数据源:
入手下手菜单―》程式集―》体系办理工具―》材料数据源(ODBC)―》进进设置用
户DSN大概体系DSN都可以:增加―》选择ADAPTIVESERVERANYWHERE8.0―》自定
义数据源称号(随便如:SYBASETEST)―》数据库称号(必选!)―》OK完成。
3.选择方才设置的数据源称号,再选择设置,跳出SYBASETESTMESSAGES:
Thedatasourceisnotconnected.Connectingtothedatasourcewill
provideusefulinformationduringconfiguration.Wouldyouliketo
connecttothedatasource?
选择YES(OK或确认)便可
进进CONNECTTOSYBASEDATABASE画面:
USERID:输出SYBASEDATABASE的用户
PASSWORD:输出SYBASEDATABASE的用户的暗码
CONNECTIONMODE:能够选择默许的SHARE形式
选择OK(确认)便可!
设置和测试ODBC完成!

4.设置sqlserver2000中的毗连服务器:
企业办理器―》平安性―》毗连服务器―》右键新建毗连服务器―》界说毗连名
称;选其他数据源;指定程序称号为:SYBASEADAPTIVESERVERANYWHERE
PROVIDER8.0;产物称号可不填;数据源指定方才ODBC中界说好的数据源称号;
供应程序字符串按以下格局填写:UserID=username;Password=userpasswd(大概
按以下格局:UID=username;PWD=userpasswd),这里的用户名和暗码对应所要连
接的SYBASE数据库中的用户名和暗码―》平安性标签页里:设置用此平安高低
文举行,并录进SYBASE的数据库用户名和暗码―》服务器选项标签页可默许―》
断定。
5.筹办事情全体完成!在sqlserver企业办理器―》平安性―》毗连服务器翻开刚
建好的毗连服务器―》点击表,便可在右侧窗口看到该SYBASE数据库用户具有的
的一切表名,但在这里还其实不能检察表的纪录,这个必要在sqserver的查询剖析
器顶用详细sql完成!会见表时,利用格局为:[毗连服务器名]..[SYBASE用户
].[表名]。更具体详细的利用这里不再赘述。
WindowsAzureSQLDatabase并不支持数据压缩和表分区之类的功能,而且SQLDatabase支持的Transact-SQL语言只是完整版的一部分。另外,因为解决方案提供商不能控制物理资源,所以他们不能将数据文件和索引分配给特定的硬件。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-19 18:26:48 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
海妖 该用户已被删除
板凳
发表于 2015-2-5 15:52:58 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
只想知道 该用户已被删除
地板
发表于 2015-2-12 20:21:08 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
兰色精灵 该用户已被删除
5#
发表于 2015-3-3 09:09:30 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-11 09:58:48 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
小魔女 该用户已被删除
7#
发表于 2015-3-18 03:57:13 | 只看该作者
也可谈一下你是怎么优化存储过程的?
爱飞 该用户已被删除
8#
发表于 2015-3-25 11:44:59 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 03:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表