SET NOCOUNT ON; DECLARE @RequiredObjects TABLE(ObjectName sysname, ObjectType varchar(2)); INSERT @RequiredObjects(ObjectName,ObjectType) VALUES (N'dbo.XiaoshuSyncCommandLog',N'U'), (N'dbo.XiaoshuSyncChangeLog',N'U'), (N'dbo.XiaoshuSync_ExecuteCommand',N'P'), (N'dbo.XiaoshuSync_ZL_User_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_Node_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_CommonModel_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_kcbd_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_order_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_skjl_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_ss_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_lxjl_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_gywjl_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_cpda_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_ck_Changes',N'TR'), (N'dbo.XiaoshuSync_ZL_C_Article_Changes',N'TR'); IF EXISTS ( SELECT 1 FROM @RequiredObjects required WHERE OBJECT_ID(required.ObjectName,required.ObjectType) IS NULL ) BEGIN SELECT required.ObjectName,required.ObjectType FROM @RequiredObjects required WHERE OBJECT_ID(required.ObjectName,required.ObjectType) IS NULL; THROW 51010,N'同步桥数据库对象安装不完整,请先执行 install.sql',1; END; SELECT required.ObjectName, required.ObjectType, CAST(1 AS bit) AS Installed FROM @RequiredObjects required ORDER BY required.ObjectType,required.ObjectName; SELECT Dataset,COUNT_BIG(*) AS PendingChangeCount,MAX(Id) AS Watermark,MAX(ChangedAt) AS LatestChangeAt FROM dbo.XiaoshuSyncChangeLog GROUP BY Dataset ORDER BY Dataset; SELECT N'users' AS Dataset,COUNT_BIG(*) AS ActiveCount FROM dbo.ZL_User UNION ALL SELECT N'nodes',COUNT_BIG(*) FROM dbo.ZL_Node UNION ALL SELECT N'course-bindings',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=58 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'appointments',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=54 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'lessons',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=59 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'learning-records',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=56 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'practice-records',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=53 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'memory-records',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=60 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'assessments',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=61 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'vocabulary',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=52 AND COALESCE(Status,99)<>-2 UNION ALL SELECT N'special-training',COUNT_BIG(*) FROM dbo.ZL_CommonModel WHERE ModelID=2 AND NodeID=3 AND COALESCE(Status,99)<>-2 ORDER BY Dataset; SELECT CAST(CASE WHEN OBJECT_DEFINITION(OBJECT_ID(N'dbo.XiaoshuSync_ExecuteCommand')) LIKE N'%51001%尚未与旧站业务逻辑绑定%' THEN 1 ELSE 0 END AS bit) AS WritesFailClosed, N'WritesFailClosed=1 表示当前仅允许只读同步;未绑定正式 BLL 前不得在新云函数启用写桥。' AS Explanation;