2008-12-18 8 views

Répondre

2

Vous pouvez voir beaucoup d'informations sur les sessions de fusion en utilisant les msMerge_sessions table système:

select * from msMerge_sessions 

En fonction des informations dont vous avez besoin, utilisez les autres tables système disponibles dans votre base de données.

3

J'ai créé une vue comme celui-ci pour obtenir la dernière date par l'abonné

select subscriber_name, max(start_time) as last_sync 
from msMerge_sessions inner join msMerge_agents 
    on msmerge_agents.id = msmerge_sessions.agent_id 
group by subscriber_name 

J'ai appelé la vue « LASTSYNC » - je puis rejoint ce point de vue comme celui-ci pour obtenir une représentation semblable à ce que montre le moniteur de réplication .

SELECT  dbo.LastSync.id, dbo.LastSync.subscriber_name, dbo.LastSync.creation_date, dbo.LastSync.last_sync, 
        distribution.dbo.MSmerge_sessions.estimated_upload_changes + distribution.dbo.MSmerge_sessions.estimated_download_changes AS estimate_rows, 
        distribution.dbo.MSmerge_sessions.upload_inserts + distribution.dbo.MSmerge_sessions.upload_updates + distribution.dbo.MSmerge_sessions.upload_deletes + distribution.dbo.MSmerge_sessions.download_inserts 
        + distribution.dbo.MSmerge_sessions.download_updates + distribution.dbo.MSmerge_sessions.download_deletes AS actual_rows, 
        distribution.dbo.MSmerge_sessions.duration AS total_seconds, distribution.dbo.MSmerge_sessions.percent_complete, 
        distribution.dbo.MSmerge_sessions.delivery_rate, CASE (runstatus) 
        WHEN 1 THEN 'Start' WHEN 2 THEN 'Succeed' WHEN 3 THEN 'In Progress' WHEN 4 THEN 'Idle' WHEN 5 THEN 'Retry' WHEN 6 THEN 'Fail' END AS Status 
FROM   distribution.dbo.MSmerge_sessions INNER JOIN 
        dbo.LastSync ON dbo.LastSync.id = distribution.dbo.MSmerge_sessions.agent_id AND distribution.dbo.MSmerge_sessions.start_time = dbo.LastSync.last_sync 
+0

'Distribution' = Votre propre DB de distribution pour ceux qui cherchent des variables se demandant qui à remplacer. Sinon bon. – rjarmstrong

0

Pour Nombre Answered 3

Grande Effort, mais il sont quelques modifications sur la capacité vue de l'exécution de requêtes

---- Créer une vue LASTSYNC comme ci-dessous

Create View LastSync As 
select subscriber_name, max(start_time) as last_sync, ID, creation_date 
from msMerge_sessions inner join msMerge_agents 
    on msmerge_agents.id = msmerge_sessions.agent_id 
group by subscriber_name, ID, creation_date 
Go 

- --- Exécuter en dessous de la requête

SELECT dbo.LastSync.id, dbo.LastSync.subscriber_name, dbo.LastSync.creation_date, dbo.LastSync.last_sync, distribution.dbo.MSmerge_sessions.estimated_upload_changes + distribution.dbo.MSmerge_sessions.estimated_download_changes AS estimate_rows, distribution. dbo.MSmerge_sessions.upload_inserts + distribution.dbo.MSmerge_sessions.upload_updates + distribution.dbo.MSmerge_sessions.upload_deletes + distribution.dbo.MSmerge_sessions.download_inserts + distribution.dbo.MSmerge_sessions.download_updates + distribution.dbo.MSmerge_sessions.download_deletes AS actual_rows, distribution.dbo.MSmerge_sessions.duration AS total_seconds, distribution.dbo.MSmerge_sessions.per cent_complete, distribution.dbo.MSmerge_sessions.delivery_rate, CASE (runstatus) QUAND 1 PUIS «Commencer» QUAND 2 PUIS «Réussir» QUAND 3 PUIS «En cours» QUAND 4 PUIS «Inactif» QUAND 5 puis «Réessayer» QUAND 6 ALORS 'Fail' FIN DE Statut DE INNER JOIN distribution.dbo.MSmerge_sessions dbo.LastSync SUR dbo.LastSync.id = distribution.dbo.MSmerge_sessions.agent_id ET distribution.dbo.MSmerge_sessions.start_time = dbo.LastSync.last_sync

- Bonne chance

Questions connexes