sql server replication:
Of course I get the error AFTER I start rolling into production!!!!
SQL Server 2000 SP4 and laptops with MSDE SP4 using MERGE with PULL.
There must be a bug in creating articles:
-- ****************** Table Contact with Int16 Identity field on primary key
PRINT 'Table Contact with Int16 Identity field on primary key'
exec sp_addmergearticle @publication = N'_Prd', @article = N'Contact',
@source_owner = N'dbo',
@source_object = N'Contact', @type = N'table', @description = null,
@column_tracking = N'true',
@pre_creation_cmd = N'drop', @creation_script = null, @schema_option =
0x000000000000CFF1,
@article_resolver = N'Microsoft SQL Server DATETIME (Later Wins) Conflict
Resolver',
@resolver_info = N'ChangeStamp',
@subset_filterclause = null, @vertical_partition = N'false',
@destination_owner = N'dbo',
@auto_identity_range = N'true',
@pub_identity_range = 15000,
@identity_range = 100,
@threshold = 99,
@verify_resolver_signature = 0,
@allow_interactive_resolver = N'false', @fast_multicol_updateproc = N'true',
@check_permissions = 0
GO
Creates a constraint of:
([ContactId] > 12 and [ContactId] < 30000)
when it should be
([ContactId] > 12 and [ContactId] < 15000)
So now after a few clients I can no longer replicate cause I can only go to
32767.
So a few questions:
1) Why the bug and how do I fix it?
2) How do I fix things in production WITHOUT redoing the replication?
3) How can I tell what the current identity is? I mean, even starting at
30000, I should get lots of ranges on the laptops because they should be only
incrementing by 100. That should still be 27 laptops (100 * 2767) before I
blow the Integer data type. We've only rolled about 5-10.