2010-05-26 10 views
7

Cuando ejecuto este script para buscar texto en particular en sys.columns y obtengo muchas filas similares a "dbo.syncobj_0x3934443438443332".¿Qué es syncobj en SQL Server

SELECT c.name, s.name + '.' + o.name 
FROM sys.columns c 
INNER JOIN sys.objects o ON c.object_id=o.object_id 
INNER JOIN sys.schemas s ON o.schema_id=s.schema_id 
WHERE c.name LIKE '%text%' 

Si lo hago bien, son objetos de replicación. ¿Es tan? ¿Puedo simplemente descartarlos de mi consulta al igual que o.name NOT LIKE '%syncobj%' o hay otra manera?

Gracias.

Respuesta

11

He encontrado una solución. No sabe, si es el mejor o no.

SELECT c.name, s.name + '.' + o.name 
FROM sys.columns c 
    INNER JOIN sys.objects o ON c.object_id=o.object_id 
    INNER JOIN sys.schemas s ON o.schema_id=s.schema_id 
WHERE c.name LIKE '%text%' AND o.type = 'U' 

El resultado está bien ahora. Como dije, los syncobj son objetos de replicación y no tienen significado para nosotros. Se usan solo con fines de replicación.

http://www.developmentnow.com/g/114_2007_12_0_0_443938/syncobj-views.htm

EDIT:

olvidó añadir, de syncobj se almacenan en la base de datos como dictamen, por lo que si usted necesita la lista de puntos de vista, es probable que tengas ignorarlos como lo hice en mi pregunta.

Al verificar la diferencia entre syncobj y mis vistas, la única diferencia es is_ms_shipped column. Para syncobj es 1, para otros 0. Significa que las vistas de syncobj son creadas por el sistema.

P.S. Esperaré un tiempo y si nadie da otra respuesta, aceptaré la mía.

+4

+1 para publicar la respuesta. Adelante, acéptalo. –

1

Cuando crea una replicación que no incluye todos los campos u otros cambios de metadatos de la tabla original. Si realiza un script de generación a partir de una publicación, le mostrará cómo se crea (ver a continuación). La vista proporciona un objeto para generar los extractos de bcp durante las instantáneas iniciales.

Aquí es un ejemplo

- Adición de la @publication artículo sincronización objeto exec sp_articleview = N'publication_data '@article = N'tablename', @view_name = N'syncobj_0x4239373642443436' , @filter_clause = N '', @force_invalidate_snapshot = 1, el valor de @force_reinit_subscription = 1 GO

PS Hace poco tuve un problema cuando dejé la replicación, no pudo soltar estos y luego tiene que soltar manualmente las vistas del sistema para reutilizar una secuencia de comandos de replicación. Dando un mensaje de error

Msg 2714, nivel 16, estado 3: Ya hay un objeto denominado 'syncobj_0x3437324238353830' en la base de datos.

Lo que provocó que el bcp fallara durante la instantánea.