sybase数据源设置,sqlserver链接sybase设置
发布时间:2024-11-10
发布时间:2024-11-10
sybase数据源设置,sqlserver链接sybase设置
Sybase数据源、SQL Server链接Sybase数据库
一、Sybase数据源设置
1、安装SYBASE驱动,驱动程序不能低于服务器版本,不然会产生很多奇怪的问题
http:///detail/qq39269357/7425569 1)ODBC 32位注册.bat echo off
regsvr32 DataAccess\ODBC\dll\sybdrvodb.dll pause
2) ODBC 64位注册.bat echo off
regsvr32 DataAccess64\ODBC\dll\sybdrvodb64.dll pause
2、添加数据源:控制面板---- 管理工具---- 数据源(ODBC)--- 用户DSN/系统DSN--- 添加 1)选择sybase驱动- 完成.
sybase数据源设置,sqlserver链接sybase设置
2)输入数据源名称,服务器IP地址或电脑名,连接端口,数据库名,登陆用户名。
3)language:输入服务器语言设置的参数(如:us_english)-- communication charset(会话字符集设置)server default 服务器默认设置,client charset 客户端字符集,No conversions 不进行转换。-- client charset(客户端字符集设置)-- ANSI字符集/OEM字符集/其它(如:ISO_1)- 点击确定完成数据源的设置(这里的设置根据服务器设置进行调整,如果使用时产生乱码则在这里进行调整。)
sybase数据源设置,sqlserver链接sybase设置
sybase数据源设置,sqlserver链接sybase设置
二、SQL Server链接Sybase数据库
1、打开SQL Server Management Studio
1)右键点击链接服务器-- 新建链接服务器
2)常规页设置:输入链接服务器名称(自定议一个名称)-- 服务器类型选择其它数据源-- 访问接口选择Microsoft OLE Provider for ODBC Drivers-- 产品名称(自定义一个名称)-- 数据源输入刚新建好的数据源
sybase数据源设置,sqlserver链接sybase设置
3)安完性设置:选择使用安全上下文建立连接-- 输入远程登录名-- 使用密码。(这里输入sybase数据库用户名和密码)-- 点击确定完成链接服务器的新建。
sybase数据源设置,sqlserver链接sybase设置
4)使用链接服务器 测试1
Select * from 链接服务器名.数据库名.数据库所有者.表名 运行正常
测试2
部份表会提示:
消息7356,级别16,状态1,第2 行
链接服务器"test" 的OLE DB 访问接口"MSDASQL" 为列提供的元数据不一致。对象"XXXX.dbo.XXXX" 的列"XXXX" (编译时序号为58)在编译时有16 的"DBTYPE",但在运行时有17。
采用OPENQUERY方式查询 语法
OPENQUERY ( linked_server ,'query' ) 参数
linked_server
表示链接服务器名称的标识符。
' query '
在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。 备注
OPENQUERY 不接受其参数的变量。 A. B. 执行 SELECT 传递查询 示例:SELECT *
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
执行 UPDATE 传递查询
sybase数据源设置,sqlserver链接sybase设置
C.
(OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName';
执行 INSERT 传递查 示例:INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');
D. 执行 DELETE 传递查询
示例:DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles
WHERE name = ''NewTitle''');
OPENQUERY 不接受其参数的变量。
这样都会提示错误,要带参数运行只能用动态语句
declare @str varchar (2000),@code varchar(20) set @code='00001'
set @str='select * from openquery(test,''select * from xxxx.dbo.xxxx where dbno=''''+@code+'''''')' exec (@str)