Iniciar sesión

Ver la versión completa : Otros Lenguajes Necesito un curso acelerado de Transact-SQL



Drumpi
24/04/2024, 14:52
Hola a todos:

Tengo un marrón gordo. Tengo una serie de SQLs hechos en SQL-Script, que entiendo lo que hacen, pero necesito traducir a Transact-SQL... y no tengo ni idea de ninguno de los dos lenguajes, más allá de las típicas funciones de SQL estándar.
Son unas funciones, que definen unas variables, y a dos de ellas se les asigna un valor en función de sendas SELECTs, y a partir de ahí, mediante IF y comparaciones, se devuelve el resultado de una consulta u otra, según dichos valores.

He estado buscando, pero no he encontrado documentación de funciones en T-SQL para novatos. He estado leyendo la web de M$ y sí, he entendido las bases de crear funciones, pero no explica cómo se definen variables, cómo asignarles valores de una SELECT, o cómo usar, si existen, bloques IF, SWITCH u otros comandos de selección.

Es más, no sé siquiera si puedo asignar los valores a las variables, porque las funciones que devuelven tablas, según la doc, sólo pueden contener una sentencia, según he leído.

Total, que si alguien que domine SQL sabe dónde puedo encontrar información, se lo agradecería. Lo ideal sería una herramienta de traducción, pero sólo tenemos la que nos ha dado soporte, que lo hace a la inversa, de T-SQL a SQL-Script... y de aquella manera.

swapd0
24/04/2024, 17:30
¿Has probado alguna IA para que te de una plantilla aproximada de como hacerlo?

Drumpi
24/04/2024, 19:05
Después de escribirlo e irme a comer (y descansar un rato) pensé en eso, y bendita IA.
No sólo me ha resuelto las dudas, me ha enseñado lo que necesitaba y me ha encontrado las respuestas en un abrir y cerrar de ojos ¡es que hasta me ha hecho la conversión de varias funciones! A ver, no han sido perfectas, he tenido que retocar algunas cosas y preguntar un par de dudas (y aún queda el testeo), pero lo cierto es que ha sido un salvavidas.

Cuando empiece a petar, entonces soltaré pestes, pero de momento, gracias. :D

josepzin
24/04/2024, 19:12
¿Has probado usar el mismo código directamente?

Drumpi
25/04/2024, 12:55
¿El de SQL Script o el de la IA?
El de SQL Script no funciona porque las funciones, las asignaciones, etc, no tienen la misma sintaxis, y da error antes de que empiece a ejecutarse.
El de la IA, había que retocar cosillas, porque la IA no es perfecta, y a veces se le olvida algunos detalles que comentamos más atrás en la conversación, pero más o menos es igual, y totalmente equivalente al de SQL Script... salvo la gestión de errores, que en T-SQL no se puede hacer dentro de las funciones, y si hago un procedimiento almacenado, no puedo devolver una tabla como resultado (salvo que la cree físicamente en la BBDD).

josepzin
25/04/2024, 16:52
Yo nunca en la vida hice algo tan complicado como eso que estas diciendo...

Drumpi
25/04/2024, 19:43
¿El qué? ¿Reescribir un trozo de código de un lenguaje de programación que no conoces a otro lenguaje de programación que tampoco conoces? ¿O escribir funciones para dos tipos diferentes de BBDD?
:lol:

josepzin
25/04/2024, 20:02
Ambas cosas :D :D

masteries
26/04/2024, 09:28
Yo nunca en la vida hice algo tan complicado como eso que estas diciendo...

Y que lo digas, qué cosas más raras hacen estos muchachos...

Ahora mismo estoy con cosas normales de toda la vida,
como modificar un cañón láser para concentrar más el haz
de luz... buscando a ver quién puede tallar la lente que hace
falta, y tiene que ser en un rubí

Drumpi
29/04/2024, 11:38
Ambas cosas :D :D

Entonces no te metas nunca a programar en una consultoría (española). Yo he pasado de chapurrear C, algo de Java y C#, a programar en dos lenguajes SQL, en VB6, VB.NET, HTML, Javascript (aún estoy peleándome con ello), y seguro que me dejo algo por ahí. Es más, he pasado de ser "el estúpido que no es capaz de configurar una red local" al encargado de configurar redes, impresoras en red, conexiones remotas, configurador de firewalls... y sigo siendo el mismo tipo de estúpido ^^U

Ahora mismo me estoy peleando por conseguir que el proyecto se cargue en 32bits para que una de las dlls del mismo se pueda cargar, y no doy con la tecla, porque todo lo que me han explicado de compiladores es "pulsa la tecla que parece un play verde para compilar y ejecutar". Y algo de compiladores cruzados, pero eso fue hace siglos y no viene al caso :D


Y que lo digas, qué cosas más raras hacen estos muchachos...

Ahora mismo estoy con cosas normales de toda la vida,
como modificar un cañón láser para concentrar más el haz
de luz... buscando a ver quién puede tallar la lente que hace
falta, y tiene que ser en un rubí

Agradecería mucho que no desvelaras en público tus planes de dominación mundial en público, nos haces quedar mal a los demás por querer guardar el secreto para que sea toda una ¡sorpresa! (la bala de la Klobb se pierde por un desagüe).

josepzin
29/04/2024, 14:20
Entonces no te metas nunca a programar en una consultoría (española). Yo he pasado de chapurrear C, algo de Java y C#, a programar en dos lenguajes SQL, en VB6, VB.NET, HTML, Javascript (aún estoy peleándome con ello), y seguro que me dejo algo por ahí. Es más, he pasado de ser "el estúpido que no es capaz de configurar una red local" al encargado de configurar redes, impresoras en red, conexiones remotas, configurador de firewalls... y sigo siendo el mismo tipo de estúpido ^^U

Tengo un amigo que en su casa no tiene ni una pinza y todo lo hacen contratando gente. Y hace unos días le decía lo bien que hace, porque en cuanto tu mujer se da cuenta que sabes poner un tarugo en la pared luego te tiene poniendo baldas por todos lados, arreglando grifos, reparando llaves de electricidad, cañerías, ventanas, puertas, cerraduras y asi.

Drumpi
29/04/2024, 19:39
¿Y qué hace ella cuando la balda está torcida o el grifo se queda goteando? ¿Saca el látigo o se divorcia y se casa con otro que sea capaz de hacerlo? :quepalmo:

josepzin
29/04/2024, 22:26
Le deja los uevos cuadrados a su pareja hasta que le soluciona el problema.

hardyx
19/06/2024, 10:26
Yo tuve que tocar alguna vez Transact-SQL, la verdad no se cuál es peor ese o el PL/SQL (Oracle).

Aquí una chuleta con lo básico:
https://en.wikipedia.org/wiki/Transact-SQL