提示:消息 7399,级别 16,状态 1,第 1 行
链接服务器 "smssvr2" 的 OLE DB 访问接口 "MSDASQL" 报错。提供程序报告了意外的灾难性错误。
消息 7343,级别 16,状态 2,第 1 行
链接服务器 "smssvr2" 的 OLE DB 访问接口 "MSDASQL" 无法 INSERT INTO 表 "[MSDASQL]"。未知的提供程序错误。
Location:  qxcntxt.cpp:1052
Expression:  cref == 0
SPID:  57
Process ID:  7560

解决方案 »

  1.   

    sql的varchar是定义的varchar(max)?
      

  2.   

    是varchar(200)
      

  3.   

     是varcahr(20)
      

  4.   

    按道理不会有错.
    可以先尝试把mysql中的对应字段也改为varchar(20)或者varchar(80)之类的试一试.看看是不是字段类型不对应造成的.逐步试错.
      

  5.   

      这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。
      

  6.   

      这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。那就先改成varchar的 导入成功后再改回来成text
      

  7.   

      这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。那就先改成varchar的 导入成功后再改回来成text
       我跟版主的思路差不多,先导入到一个varchar类型的表中,再将中间表导入到text类型的表。有没有好点的办法直接插入。mysql的数据库基本上不允许建立触发器或者新表,这是最后的方案。
      

  8.   

      这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。那就先改成varchar的 导入成功后再改回来成text
       我跟版主的思路差不多,先导入到一个varchar类型的表中,再将中间表导入到text类型的表。有没有好点的办法直接插入。mysql的数据库基本上不允许建立触发器或者新表,这是最后的方案。是一次导入吗?
    那就先弄成varchar()的,导入完成以后,直接将表结构修改一下就行了,把那个字段类型改为text
      

  9.   

      这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。那就先改成varchar的 导入成功后再改回来成text
       我跟版主的思路差不多,先导入到一个varchar类型的表中,再将中间表导入到text类型的表。有没有好点的办法直接插入。mysql的数据库基本上不允许建立触发器或者新表,这是最后的方案。是一次导入吗?
    那就先弄成varchar()的,导入完成以后,直接将表结构修改一下就行了,把那个字段类型改为text

      mysql数据库是我通过odbc方式建立的链接服务器。我的目的是sqlserver中生成一条数据就插入到mysql数据表中,实现实时的数据同步。
      

  10.   

    先将varchar数据导入到mysql中,然后修改表结构为text类型。
    不过对于生产环境下,最好不要在业务操作频繁操作,可能会对线上有影响的,建议
    在业务很少晚上去做此操作。
      

  11.   

    楼主是用触发器触发的吗?mssql表插入一条数据,触发触发器,触发器用openXXXX函数插入到mysql中吗?