Hi,
I found a strange behavior in Transaction Replication. After the synchronization, one of my foreign keys is being deleted.
That situation happens with the follow sample:
CREATE TABLE [dbo].[Table1] (
[ColumnA] BIGINT NOT NULL,
[ColumnB] BIGINT NOT NULL,
[ColumnC] INT CONSTRAINT [DF_Table1_ColumnB] DEFAULT ((0)) NOT NULL,
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED ([ColumnA] ASC)
);
GO
CREATE UNIQUE NONCLUSTERED INDEX [UQ_Table1_ColumnC_ColumnB]
ON [dbo].[Table1]([ColumnC] ASC, [ColumnB] ASC)
INCLUDE([ColumnA]);
GO
CREATE TABLE [dbo].[Table2] (
[ColumnX] INT IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL, --Subscriber: [ColumnX] INT NOT NULL,
[ColumnY] BIGINT NOT NULL,
[ColumnZ] INT NOT NULL,
CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED ([ColumnX] ASC),
CONSTRAINT [FK_Table2_Table1] FOREIGN KEY ([ColumnZ], [ColumnY]) REFERENCES [dbo].[Table1] ([ColumnC], [ColumnB])
);
GOThe foreign key being deleted is FK_Table2_Table1.
Did anyone experience something similar? If yes, what's the reason?
Thanks.