Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Diferencia sintáctica SQL Server y MySql

Estas en el tema de Diferencia sintáctica SQL Server y MySql en el foro de SQL Server en Foros del Web. Estoy intentando hacer una consulta para un trigger en SQL Server que sí me funciona en MySql y no doy con la clave para hacerlo ...
  #1 (permalink)  
Antiguo 02/04/2007, 10:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 12
Antigüedad: 17 años, 2 meses
Puntos: 0
Diferencia sintáctica SQL Server y MySql

Estoy intentando hacer una consulta para un trigger en SQL Server que sí me funciona en MySql y no doy con la clave para hacerlo bien:

La consulta es como sigue:

SELECT count(*) into @num_visitas from visitas....

Da error

Sin embargo, En MySql:

SELECT count(*) into num_visitas from visitas funciona perfectamente y almacena en la variable num_visitas el numero de registros de la tabla visitas.

¿Cómo asigno el resultado de una consulta que da un valor escalar en una variable?

Gracias
  #2 (permalink)  
Antiguo 02/04/2007, 13:02
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: Diferencia sintáctica SQL Server y MySql

Yo me la sabía así:

SELECT @num_visitas=count(*) from visitas
  #3 (permalink)  
Antiguo 02/04/2007, 14:36
 
Fecha de Ingreso: febrero-2007
Mensajes: 12
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Diferencia sintáctica SQL Server y MySql

Mil gracias, funciona perfectamente.

Pero ahora tengo un nuevo problema

Quiero almacenar en una variable el valor del último registo introducido en un campo de una tabla:

SELECT @ultimo = TOP 1 campo from tabla ..... WHERE ..... ORDER BY clave DESC

Esto no funciona, da error cercano a TOP.

En MySql:

SELECT campo into @ultimo from tabla ..... WHERE ..... ORDER BY clave DESC LIMIT 1

Última edición por carlangas07; 02/04/2007 a las 15:43
  #4 (permalink)  
Antiguo 02/04/2007, 16:13
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: Diferencia sintáctica SQL Server y MySql

SELECT TOP 1 @ultimo=campo from tabla ..... WHERE ..... ORDER BY clave DESC



Al parecer meterse con mysql hace daño para la salud
  #5 (permalink)  
Antiguo 02/04/2007, 16:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 12
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Diferencia sintáctica SQL Server y MySql



muchas gracias, visto lo visto el orden de los factores sí altera el resultado
  #6 (permalink)  
Antiguo 02/04/2007, 16:52
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: Diferencia sintáctica SQL Server y MySql

Hubiera que ver cuales de las dos formas corresponde al ANSI SQL
  #7 (permalink)  
Antiguo 23/03/2010, 18:15
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Diferencia sintáctica SQL Server y MySql

Hola, tengo que realizar una migración desde sqlserver(plataforma windows, todo dicho) hacia mysql(linux, ok) , en donde debo realizar consultas en un lenguaje (cobol) con sql embebido, y se me presenta un gran problema:
en el mismo editor de mysql ingreso:
DECLARE cur1 CURSOR FOR SELECT (campo I tabla), (campo II tabla) FROM tabla;
para luego obtener el resultado y mostrarlo en una box:
fetch cur1 into :NOMBRE,
:PROPIETARIO
el inconveniente es que la instracción no funciona ya desde el "DECLARE", he ido y venido por apuntes en internet (incluso en la pagina oficial de mysql.com) y aparentemente la instrucción está correcta, pero siempre estoy teniendo el error:
"ERROR 1064 (42000): You have an error in your SQL syntax; check the manual......."
A esta altura ya no se en donde buscar, en Oracle, en SqlServer, esta instrucción funciona de maravilla, por favor, si alguien sería tan amable de responderme.
desde ya muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:48.