2011-05-10 134 views
2

对于我们的应用程序,我们使用SQL Server 2000 & MySQL。如果在SQL Server 2000中进行任何修改,我想更新MySQL数据库。为此,我创建了MySQL链接服务器。它工作正常,但是触发里面显示像SQL Server 2000 - 链接服务器

错误消息[/ OLE DB提供程序返回 消息:[MySQL的] [ODBC 3.51 驱动程序]可选功能不 支持]
消息7391,级别16, 状态1,过程, 线6
的操作不能因为OLE DB提供程序“MSDASQL”无法启动分布式事务执行。”

这是我的触发,

alter trigger upd_test_enum 
on mtest 
for insert 
as 
begin 
    insert into emsdev...test_enum (id, name, is_active) values (4, 'Test4', 0) 
end 

请帮帮我。

方面, 穆巴拉克

+0

如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”)以精确地设置格式和语法突出显示它!如果您发布错误消息,**请**使用blockquotes('“')正确格式化错误消息。因此,您的帖子中永远不需要任何'
'! – 2011-05-10 05:25:59

回答

3

我不得不做一些事情来得到它的工作。还使用Win2K SQL服务器并从MySql导入数据。

一件事,我们做的是安装3.51.22版本 MySQL的ODBC驱动程序(使用mysql-connector-ODBC-3.51.22-win32.msi)的。

然后下面的文章是非常有益的:http://www.sqlservercentral.com/Forums/Topic340912-146-1.aspx

主要的事情是关掉的交易活动以及创建链接的服务器时,参考的DSN。为便于参考,我会复制和粘贴在这篇文章下面从SQLServerCentral文章的说明:

的MySQL数据库

  1. 下载从MySQL MySQL的ODBC驱动程序创建在SSMS链接服务器.com
  2. 在SQL Server所在服务器上安装MySQL ODBC驱动程序 - 双击Windows安装程序文件并按照指示操​​作。

  3. 创建一个使用MySQL的ODBC驱动程序开始 - >设置一个DSN - >控制面板 - >管理工具 - >系统DSN选项卡 - 点击添加 - 选择MySQL的ODBC驱动程序的数据源(ODBC) - 点击 - 单击完成在登录选项卡上: - 为您的DSN输入一个描述性名称。 - 将服务器名称或IP地址输入到服务器文本框中。 - 将连接到MySQL数据库所需的用户名输入到用户文本框中。 - 将连接MySQL 数据库所需的密码输入到密码文本框中。 - 选择您希望 开始的数据库。在高级选项卡上:在标记1下: - 检查不要优化 列宽。 - 检查返回匹配行 - 检查允许大的结果 - 检查使用压缩协议 - 检查BIGINT列INT - 检查安全标志2: - 检查不要提示连接 - 检查忽略# 表名下标志3: - 检查返回的表名 - 检查SQLDescribeCol将禁止交易的 现在测试您的DSN点击测试按钮

  4. 创建SSMS MySQL数据库SSMS(SQL Server Management Studio中链接服务器 - >展开Server对象 - 右点击链接 服务器 - >选择新的链接服务器在常规页面上: - 链接 服务器:键入链接服务器的名称 - 服务器类型:选择 其他数据源-Provider:Sel ect Microsoft OLE DB Provider for ODBC驱动程序 - 产品名称:类型MySQLDatabase -Data源:类型 您在安全页面上创建的DSN的名称 - 映射登录到 远程用户并提供远程用户密码 - 单击添加 在本地服务器登录到远程服务器登录映射: - 选择一个 本地登录从下拉框 - 键入远程用户 的名称 - 键入密码,远程用户

  5. 更改提供的属性MSDASQL展开提供程序 - >右键单击MSDASQL - >选择属性 - 启用嵌套查询 - 仅启用级别零(此为踢球者) - 启用允许进程中 - 启用支持'赞'操作员

  6. 更改SQL Server表面区域配置中功能的设置 - 支持OPENROWSET和OPENDATASOURCE。通过 TCP/IP在SQL Server外围应用配置服务和连接-Enable本地和远程连接

  7. 更改设置和命名管道

  8. 停止SQL Server和SQL Server代理

  9. 启动SQL Server和SQL Server代理

我没有找到我需要重新启动SQL服务器。

相关问题