Published on

March 23, 2012

20 Consejos para Modificar Vistas de MySQL para Microsoft SQL Server

Cuando se migra datos de MySQL a MS SQL Server, puede ser desafiante convertir vistas. Si bien existen herramientas gratuitas disponibles para migrar datos, ninguna de ellas es capaz de convertir vistas. Este artículo tiene como objetivo proporcionar 20 consejos sobre cómo modificar vistas de MySQL para hacerlas compatibles con Microsoft SQL Server.

El público objetivo de esta guía debe tener conocimientos generales de administración de bases de datos y experiencia en la composición de consultas SQL.

Primero, necesitas obtener una lista de todas las vistas en la base de datos utilizando la siguiente consulta:

SELECT table_name, view_definition
FROM information_schema.views
WHERE table_schema='%nombre de la base de datos%';

Una vez que tengas la lista de vistas, puedes comenzar a modificar cada consulta de vista de MS SQL de acuerdo con las siguientes reglas:

  1. Si la consulta contiene una cláusula ‘ORDER BY…’, es necesario insertar ‘TOP 100 PERCENT’ justo después de la palabra clave ‘SELECT’.
  2. Reemplaza todas las apariciones de ‘now()’ con ‘getdate()’.
  3. Reemplaza ‘JOIN … WHERE’ con ‘CROSS JOIN … WHERE’.
  4. Reemplaza ‘isnull(%expresión%)’ con ‘%expresión% is null’.
  5. Reemplaza todas las apariciones de ‘from_unixtime(%expresión%)’ con ‘DateAdd(ss, %expresión%, ’01-01-1970′)’.
  6. Elimina las conversiones de página de código (como ‘_cp1252’) si las hay, ya que es sintaxis pura de MySQL.
  7. Reemplaza ‘curdate()’ con ‘getdate()’.
  8. Reemplaza ‘timediff(%expr1%, %expr2%)’ con ‘CAST(%expr1% – %expr2% AS TIME)’.
  9. Reemplaza ‘%tabla1% cross join %tabla2% on %condición%’ con ‘%tabla1% cross join %tabla2% where %condición%’.
  10. Reemplaza ‘conact(%expr1%, %expr2%, …, %exprN%)’ con ‘%expr1% + %expr2% + … + %exprN%’.
  11. Reemplaza ‘SELECT … LIMIT %número_de_filas%’ con ‘SELECT TOP %número_de_filas% …’.
  12. Reemplaza ‘RAND()’ con ‘newID()’ – esto funciona en MS SQL 2005 y versiones posteriores.
  13. Reemplaza ‘DAY(%expresión%)’ o ‘DAYOFMONTH(%expresión%)’ con ‘DATENAME(d, %expresión%)’.
  14. Reemplaza ‘DAYOFYEAR(%expresión%)’ con ‘DATENAME(dy, %expresión%)’.
  15. Reemplaza ‘DAYNAME(%expresión%)’ con ‘DATENAME(dw, %expresión%)’.
  16. Reemplaza ‘HOUR(%expresión%)’ con ‘DATENAME(hh, %expresión%)’.
  17. MySQL ‘… like %plantilla%’ es igual a ‘CONTAINS(…, ‘plantilla’)’ en MS SQL.
  18. MySQL ‘%expresión% – INTERVAL 1 DAY’ es igual a MS SQL ‘dateAdd(day, -1, %expresión%)’.
  19. MySQL ‘%expresión% – INTERVAL 1 MONTH’ es igual a MS SQL ‘dateAdd(month, -1, %expresión%)’.
  20. MySQL ‘%expresión% – INTERVAL 1 YEAR’ es igual a MS SQL ‘dateAdd(year, -1, %expresión%)’.

Es importante tener en cuenta que a diferencia de MySQL, MS SQL requiere que todas las columnas seleccionadas en consultas ‘SELECT … GROUP BY …’ estén bajo la cláusula ‘GROUP BY’ o en funciones de agregación.

Aunque este artículo cubre los problemas más frecuentes en la migración de vistas de MySQL a MS SQL, hay muchos matices que no se discuten aquí. Si necesitas una solución para la migración completa de una base de datos de MySQL a MS SQL Server, considera utilizar las siguientes herramientas:

  • MySQL-to-MSSQL de Intelligent Converters: una herramienta de migración de bases de datos económica que convierte aproximadamente el 50% de las vistas en pruebas. El precio es de $49. Puedes encontrar más detalles en http://www.convert-in.com/sql2mss.htm.
  • DBConvert for MS SQL & MySQL de DMSoft Technologies: una herramienta de migración de bases de datos bidireccional que permite convertir MS SQL a MySQL y viceversa. Ninguna de las vistas de prueba ha sido convertida. El precio es de $99. Puedes encontrar más detalles en http://dbconvert.com/convert-mssql-to-mysql-pro.php.
  • SqlTran de Spectralcore: un sofisticado traductor de bases de datos que convierte datos, procedimientos almacenados, disparadores y vistas. No se conoce la calidad de la conversión, pero el proveedor promete un resultado del 100%. El precio es de $999. Puedes encontrar más detalles en http://www.sqltran.com/.

Recuerda, migrar vistas de MySQL a MS SQL Server puede ser una tarea compleja, pero con estos consejos y las herramientas adecuadas, puedes asegurar una migración exitosa.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.