Por primera vez en muchos años que he estado haciendo un poco de programación T-SQL en SQL Server 2008 y había olvidado lo mal el lenguaje realmente es: el control¿Hay un reemplazo para Transact-SQL
- Flujo (todas las cosas de principio/fin) se siente torpe
- El manejo de excepciones es deficiente. Las excepciones no burbujean de la misma manera que lo hacen en cualquier otro idioma. No hay re-lanzamiento a menos que se codifican por sí mismo y la función raiserror ni siquiera está escrita correctamente (esto me causó algunos dolores de cabeza!)
- manejo de cadenas es pobre
- El único tipo de secuencia es una mesa. Tuve que escribir una función para dividir una cadena basada en un delimitador y tuve que almacenarla en una tabla que tenía las partes de la secuencia junto con un valor que indica la posición de la secuencia.
- Si necesita hacer una búsqueda en el proceso almacenado, manipular los resultados es doloroso. Usted tiene que utilizar los cursores o cortar juntos un bucle while con una búsqueda anidada si los resultados contienen algún tipo de ordenar la columna
Me di cuenta que podía codificar hasta mis procedimientos almacenados usando C#, pero esto requerirá para conceder permiso al servidor para permitir funciones CLR, que no es una opción en mi lugar de trabajo.
¿Alguien sabe si hay alternativas a T-SQL dentro de SQL Server, o si hay algún plan para introducir algo? Seguramente tiene que haber una alternativa más moderna ...
PD: Esto no pretende iniciar una guerra de llama, estoy realmente interesado en cuáles son las opciones.
Quizás esto ayude un poco con las secuencias: http://www.sommarskog.se/arrays-in-sql-2008.html – Skurmedel
@Skurmedel: Gracias.Me he topado con artículos similares y pueden destacar que una vez que usas tsql tienes que poner todo en tablas para procesar una "lista" – Sean