usuario tablas seguridad quitar que puede posee esquemas esquema entidad eliminar datos comparar como bases sql visual-studio schema-compare

tablas - Incluir pero no eliminar el esquema de SQL Comparar



la entidad de seguridad de base de datos posee esquema en la base de datos no se puede quitar (2)

Estoy intentando usar la Comparación de esquemas SQL en Visual Studio 2013/15 y me estoy topando con el problema de que al excluir las tablas de la eliminación, se eliminan del procesamiento.

El problema es que las tablas que está intentando eliminar son tablas creadas por el cliente, por lo tanto, cuando sincronizamos nuestra versión con sus bases de datos, solicita eliminarlas. No queremos eliminarlos, pero algunas de sus tablas tienen restricciones sobre nosotros, de modo que cuando intenta CCDR falla debido a restricciones de la tabla. ¿Hay una manera de agregar la tabla para que se vuelva a crear (como el resto de ellos), sin escribir scripts para que cada cliente haga lo que SQL Schema Compare ya hace solo para esas pocas tablas?

La comparación de SQL de Red-Gate hace esto de alguna manera, pero está oculta para nosotros, por lo que no estamos muy seguros de cómo se logró. La exclusión no se elimina, pero tampoco se produce un error en la secuencia de comandos.

ACTUALIZAR:

La opción "Eliminar restricciones que no están en la fuente" no parece funcionar correctamente. Sí elimina algunas, sin embargo, hay otras que simplemente no elimina las restricciones. En la herramienta de red-gate, cuando comparamos, descubrí cómo obtener el SQL, y su producto no dice que la tabla deba actualizarse en absoluto, mientras que sí lo hace Visual Studio. Parece que funcionan casi idénticas, pero las tablas que fallan son las que no deberían actualizarse en absoluto (lea a continuación)

Actualización 2:

Otro problema que encontré es que "Ignorar la intercalación de columnas" tampoco funciona correctamente, ya que a las tablas que no deberían eliminarse se les dice que deben actualizarse aunque solo sea un orden de cambios de columna, no una columna o datos reales cambios, lo que hace que se sienta más como un informe de errores que cualquier otra cosa.


Mi sugerencia con estos tipos de cálculos de datos avanzados es no usar Visual Studio. Ponga la lógica en el motor Sql y escriba el código para esto en Sql. Debido a los problemas de bloqueo de múltiples usuarios de un motor Sql, estos tipos de procesos son propensos a fallar cuando se producen al mismo tiempo las combinaciones incorrectas de acciones del usuario. La herramienta Visual Studio no puede interactuar con los problemas de bloqueo de datos debido a los cambios en los registros que puede hacer el motor Sql. Si incluso consigues que esto funcione, solo será seguro ejecutarlo si estás en modo de usuario único.

Es una herramienta agradable de usar, más fácil que escribir Sql, pero existen grandes riesgos de confiabilidad y consistencia para seguir este camino.


No sé si esto ayudará, pero he encontrado este párrafo en la siguiente página: https://msdn.microsoft.com/en-us/library/hh272690(v=vs.103).aspx

La actualización fallará porque nuestro cambio implica cambiar una columna de NOT NULL a NULL y como resultado provoca la pérdida de datos. Si desea continuar con la actualización, haga clic en el botón Opciones (el quinto desde la izquierda) en la barra de herramientas para la Comparación de esquemas y desmarque la implementación incremental del bloque si la opción de pérdida de datos.