I need migrate anything from SQL Server to MongoDB.
SQL Server continuously inserts, updates, deletes data, and I want to move that data to MongoDB.
Example trigger:
BEGIN
BEGIN TRY
BEGIN TRAN
DECLARE @tableName VARCHAR(50) = 'AutoPushData_OK'
DECLARE @event_type varchar(42)
IF EXISTS(SELECT * FROM inserted)
IF EXISTS(SELECT * FROM deleted)
SELECT @event_type = 'update'
ELSE
SELECT @event_type = 'insert'
ELSE
IF EXISTS(SELECT * FROM deleted)
SELECT @event_type = 'delete'
ELSE
SELECT @event_type = 'unknown'
IF @event_type ='insert' or @event_type = 'update'
BEGIN
INSERT INTO ReplicationData.dbo.MigrateData (JsonData, TableName, CRUD)
SELECT
(SELECT * FROM inserted FOR JSON AUTO),
@tableName, @event_type
END
ELSE IF @event_type = 'delete'
BEGIN
INSERT INTO ReplicationData.dbo.MigrateData (JsonData, TableName, CRUD)
SELECT
(SELECT * FROM deleted FOR JSON AUTO),
@tableName, @event_type
END
COMMIT TRAN
END TRY
BEGIN CATCH
DECLARE @ErrorMsg VARCHAR(MAX),
@ErrorNumber INT,
@ErrorProc sysname,
@ErrorLine INT
SELECT
@ErrorMsg = ERROR_MESSAGE(),
@ErrorNumber = ERROR_NUMBER(),
@ErrorProc = ERROR_PROCEDURE(),
@ErrorLine = ERROR_LINE();
ROLLBACK TRAN;
INSERT INTO ErrorLog (ErrorMsg, ErrorNumber, ErrorProc, ErrorLine)
VALUES (@ErrorMsg, @ErrorNumber, @ErrorProc, @ErrorLine)
END CATCH
END
I will insert all changes of table AutoPushData_OK to dbo.MigrateData and use a service insert data from dbo.MigrateData into MongoDB.
Question: is there any danger in my way of doing this?
Is there any better way?
Thanks