Traitée 64 bit to 32 bit linked server problems

  • lundi 7 mai 2012 12:33
     
     

    I have a sql2008 r2 64 but computer trying to update a 32 bit sql2000 machine

    I tried a multi-row update and got the error message

    Msg 682, Level 22, State 148, Line 1
    Internal error. Buffer provided to read column value is too small. Run DBCC CHECKDB to check for any corruption.

    I saw that while multi-row updates crash with this error message, a single row update should work. I converted the update to a cursor and now I get the following error message. 

    OLE DB provider "SQLNCLI10" for linked server "xxx" returned message "Bookmark is invalid.".
    Msg 7333, Level 16, State 2, Line 1
    Cannot fetch a row using a bookmark from OLE DB provider "SQLNCLI10" for linked server "xxx".

    the update stmt is like:

    update y

    set col=x.value

    from sql2008.table x inner join sql2000.table y

    on x.val=y.val collate <collasion>


    ???

Toutes les réponses

  • lundi 7 mai 2012 12:56
    Auteur de réponse
     
     
    See if the below helps you...

    OLE DB provider "SQLNCLI" for linked server "MySQLServer7" returned message "Unspecified error".
    OLE DB provider "SQLNCLI" for linked server "MySQLServer7" returned message "The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.".
    Msg 7311, Level 16, State 2, Line 9
    Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked 


    Marek’s solution is to create a wrapper on the master database as follows (his code not mine):

    create procedure sp_tables_info_rowset_64
          @table_name sysname, 
          @table_schema     sysname = null,   
          @table_type nvarchar(255) = null 

    as

    declare @Result int set @Result = 0
    exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type

    Best Regards, Uri Dimant SQL Server MVP http://dimantdatabasesolutions.blogspot.com/ http://sqlblog.com/blogs/uri_dimant/

  • lundi 7 mai 2012 13:34
     
     
    already did that. we are on the next set of errors as I posted above 

    ???

  • lundi 7 mai 2012 15:14
     
     

    Following links seems to be having a similar scenario as yours, please review:

    Internal error. Buffer provided to read column value is too small. Run DBCC CHECKDB to check for any corruption

    One of the causes of this error is improper indexes usage.

  • mardi 8 mai 2012 06:18
     
     
    it seems to be the same problem except that we have an sql2000 machine, so I can't install the sp specified which might fix the problem

    ???

  • mardi 8 mai 2012 06:57
     
     Traitée

    instead of pushing the update from the 2008 machine, I pulled it from the 2000 machine and it works fine.

    since I was planning on running a nightly job, this is sufficient for me. if you need more frequent updates, I'd suggest writing the changes to a table and having a job running every minute pull the changes over marking those processed.

    berli1


    ???

    • Marqué comme réponse berli mardi 8 mai 2012 06:57
    •