Bug in MS SQL Server 2000 replication.

  • I have to create a transactional replication in SQL Server.

    Still while publishing, for a few tables I get the following:

    ---------------------------------------------------------------------------

    "SQL Server Enterprise Manager could not create article '<article_name>' based on object '<table_name>'.

    Do you want to continue saving other changes to the publication?

    Error 220: Arithmetic overflow error for data type tinyint, value=<a_negative_value>.

    The column cannot be included in a transactional publication because the column ID is greater than 255.

    The column was not added correctly to the article."

    ---------------------------------------------------------------------------

    And - yes - browsing the SYSCOLUMNS table I found that some columns of the tables generating the error have a value for COLID (wich is a smallint field) greater than 255. These columns corresponds to the fields added to the existing database by a set of ALTER TABLE <table> ADD <column> sql statements.

    Hence apparently SQL Server

    - uses an internal SMALLINT counter to assign a value to SYSCOLUMNS.COLID when performing an ALTER TABLE ADD <column> statement

    - uses an internal TINYINT column to perform the transactional replication of each column.

    Any idea?

    Best regards

  • Amazing how many things can break. Do you really have more than 255 cols? If not, I'd say the easiest would be reset the ids. Haven't tried, but I'd suspect that select * into a new table would do it.

    Andy

    http://www.sqlservercentral.com/columnists/awarren/

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply