una significa servidor seguridad realizo que nivel migrar microsoft datos copia compatibilidad admite sql-server sqlclr

sql server - significa - ¿Cómo actualizo un ensamblaje y sus ensamblajes dependientes en MS-SQL?



que significa compatibilidad de base de datos (3)

Me temo que tirar la mesa y volver a crearla es la única manera.

La razón principal de esto es que los valores almacenados en un tipo en un ensamblaje no se pueden usar si actualiza el ensamblaje a una nueva versión.

Esta es la situación:

Tengo un Trigger.dll y un Trigger.XmlSerializer.dll.

Yo uso CREATE ASSEMBLY para registrarlos en MSSQL.

Ahora, he compilado nuevas versiones de ambos.

Quiero usar ALTER ASSEMBLY para actualizarlos, sin embargo, solo puede actualizar uno a la vez. Si intenta actualizar uno que tiene una dependencia, se queja. ¿Cuál es el truco para hacer esto?

No quiero soltar y volver a crear, ya que tengo que soltar todos los desencadenadores, etc. y hay un tiempo de inactividad de la base de datos.


de acuerdo con el soporte de microsoft puede usarlo por truco.

Notas

  • Estos pasos actualizan o degradan el ensamblaje A en el escenario que se describió en la sección "Cómo actualizar o degradar un ensamblaje".
  • Este ejemplo supone que las versiones de los dos conjuntos son 1.0.0.0 y los conjuntos están escritos en C #. Cuando sigue estos pasos, intenta actualizar el ensamblaje A y el ensamblado B a la versión 2.0.0.0.

Para actualizar o degradar el ensamblaje A, siga estos pasos.

  1. Realice una copia de seguridad de la versión 1.0.0.0 del conjunto B en una carpeta.
  2. Modifique y luego recompile el ensamblado B a la versión 2.0.0.0.
  3. Utilice la instrucción ALTER ASSEMBLY para actualizar el ensamblado B en SQL Server 2005.
  4. Modifique y luego recompile el ensamblado A a la versión 2.0.0.0. Cuando haga esto, haga referencia a la versión 1.0.0.0 del ensamblado B desde la copia de seguridad que realizó en el paso 1. Para hacerlo, use la herramienta compilador Csc.exe junto con el modificador / reference. Por ejemplo, use el siguiente comando: csc / target: library /out:AssemblyA.dll AssemblyA.cs AssemblyInfo.cs /reference:"BackupFolder/AssemblyB.dll "Nota Para verificar la versión del ensamblado B en los metadatos del ensamblado A, abra el ensamblaje A usando la utilidad Ildasm.exe. Luego, verifique la información de metadatos para el ensamblado al que se hace referencia en la sección MANIFEST.
  5. Utilice la instrucción ALTER ASSEMBLY para actualizar el ensamblado A en SQL Server 2005.

Dos sugerencias:

1) En general, puede evitar dependencias mediante el uso de ILMerge para incrustarlos e internalizarlos. Por lo tanto, la declaración de modificación del ensamblado debería ser suficiente en la mayoría de los casos. Aún no lo he intentado con SQLCLR pero lo probaría.

2) ¿Tal vez los ensamblados de serialización XML no son necesarios? Este artículo sugiere que solo es necesario cuando se llaman servicios web externos dentro de SQL Server . En sí mismo un diseño cuestionable a menos que sea una de esas personas que desea alojar todos sus servicios comerciales dentro del producto MS SQL Server, en lugar de simplemente escribir sus propios servicios independientes en Windows (mucho más fácil de instalar, administrar y mantener), es decir, más patrón n-Tier que "patrón de datos hace todo" anti-patrón. Como su DLL se llama Triggers.dll, no sugiere que declare ningún tipo o es un proxy de servicio web. Si me perdí alguna otra razón para utilizar serializadores XML, entonces es suficiente, por favor explique sobre esto por interés.