Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   cambiar trigger firebird a sql (https://www.clubdelphi.com/foros/showthread.php?t=78784)

amerika111 16-05-2012 22:59:44

cambiar trigger firebird a sql
 
Hola buenas tardes.. es posible que lo que hace este trigger que esta en firebird se pase a lenguaje sql.. este trigger lo usaba para que en cada insercion en una tabla de insertaban en tres columnas el nombre separado y en la cuarta columna se insertara ya concatenado..

begin
IF(NEW
.APELLIDOMATERNO=
''
)then
new.USERID =
coalesce( /SIZE]SIZE=2]NEW.APELLIDOPATERNO,
'')||
' '
||coalesce
(NEW.NOMBRE
,'');
ELSE new.USERID =coalesce(NEW.APELLIDOPATERNO,'')||' '||coalesce(new.APELLIDOMATERNO,'')||' '||coalesce(NEW.NOMBRE,'');
end

Casimiro Notevi 17-05-2012 00:10:49

¡¡¡Madre mía del amor hermoso!!!, ¡¡¡qué es eso!!!, a ver...

Código SQL [-]
IF (NEW.APELLIDOMATERNO='') then
  new.USERID = coalesce(NEW.APELLIDOPATERNO,'')||' '||coalesce(NEW.NOMBRE,'');
ELSE 
  new.USERID = coalesce(NEW.APELLIDOPATERNO,'')||' '||coalesce(new.APELLIDOMATERNO,'')||' '||coalesce(NEW.NOMBRE,'');

Bien, y ahora, ¿qué has preguntado?

ecfisa 17-05-2012 01:20:41

Hola amerika111.

Cita:

..es posible que lo que hace este trigger que esta en firebird se pase a lenguaje sql...
No entiendo a qué querés traducir. El código de ese trigger ya está en lenguaje sql.

Saludos.

amerika111 17-05-2012 02:10:36

me refiero a como seria la sintaxis.. en sql server de la creacion del trigger..

Delphius 17-05-2012 04:43:23

Cita:

Empezado por amerika111 (Mensaje 432760)
me refiero a como seria la sintaxis.. en sql server de la creacion del trigger..

Entonces llamemos a las cosas por su nombre... no "resumas" al término SQL Server como SQL cuando SQL es UN lenguaje estándar, el SQL Server es sólo uno de tantos motores. Que después cada motor además del lenguaje estándar tenga sus propias cláusulas eso ya es otra cosa.

Saludos,

amerika111 17-05-2012 05:26:08

Entonces lo llamare por su nombre.. como seria la sintaxis del trigger mencionado en la parte de arriba que esta hecho para un manejador firebird.. para un manejador de microsoft sql server version 2005...:confused: ya que supongo que en sql server no se manejan las palabras reservadas "new"

ecfisa 17-05-2012 05:43:07

Hola amerika111.

  • Sobre el tema de la obtención de los equivalentes a los valores NEW y OLD, revisá este enlace: CREATE TRIGGER.
  • Este trata sobre el uso de COALESCE.
  • Y por último, este sobre el uso del condicional IF...ELSE.
Saludos.

Casimiro Notevi 17-05-2012 09:42:36

Cita:

Empezado por amerika111 (Mensaje 432768)
Entonces lo llamare por su nombre.. como seria la sintaxis del trigger mencionado en la parte de arriba que esta hecho para un manejador firebird.. para un manejador de microsoft sql server version 2005...:confused:

Es que realmente es así, amerika111, MS Sql Server es un gestor de bases de datos relacionales, como postgresql, firebird, sqllite, mysql, etc.
La diferencia es que microsoft aprovechó su departamento de marketing para llamarle "sql server" y confundir al que no entiende, así le hace creer que "sql server" es el de ellos, el de microsoft, y los demás son "otras cosas".
¿Sabías que MS Sql server no lo creó microsoft?, en efecto, ellos compraron la base de datos a Sybase, y a partir de ahí la fueron modificando y ampliando, siguiendo ambas caminos distintos.

Más o menos, la historia de las bases de datos relacionales es así:
  • Eric Allman funda Sybase, de donde nace MS SQL Server
  • Michael Stonebraker, a partir de Ingres y System R crea Illustra (que es re*formulada como Informix); de donde posteriormente IBM obtendría DB/2 y de donde se basa el ANSI SQL 2003 y mySQL.
  • Robert Epstein se une a Larry Ellison (que venía de trabajar en el proyecto “Oraculo” de la CIA) y fundan Oracle Corp.
  • Michael Stonebraker retorna a Berkeley en 1985 y funda el proyecto “más allá de Ingres” (post*Gres) que se convertiría en la actual PostgreSQL.
  • Bernstein se une a Jim Starkey (que viene de DEC*VMS) y desarrollan Interbase
  • Margo Seltzer en su tesis (con tutor a Stonebreaker) usa código libre de System R y desarrolla una disertación sobre bases de datos de archivos; de donde nace Berkeley DB
  • Keith Bostic (socio de Margo en Sleepycat) crea BSD.LFS y Unix BSD
  • Jim Starkey vende los derechos de Interbase a Asthon*Tate (Dbase) que luego es vendido a Borland
  • Borland libera Interbase 6.0 con la licencia MPL y de ahí nació Firebird 1.0
Bueno, es un resumen rápido :)

cloayza 17-05-2012 16:19:05

Cita:

Empezado por Casimiro Notevi (Mensaje 432779)
Más o menos, la historia de las bases de datos relacionales es así:
  • Eric Allman funda Sybase, de donde nace MS SQL Server...

Sencillo pero muy bueno...:eek:

Gracias

amerika111 17-05-2012 17:32:01

wuoo gracias por la informacion..:)

amerika111 17-05-2012 20:56:09

al parecer va algo asi:

Código SQL [-]
CREATE TRIGGER trgsolicitudes
ON solicitudes
FOR UPDATE, insert
AS
BEGIN
update solicitudes set NombreCompleto=(select ltrim(rtrim(isnull(nom,'')))+' '+(rtrim(isnull(ape_pat,'')))+' '+(rtrim(isnull(ape_mat,''))) as 
'Nombre' from fusu_usr where id=id)
END


La franja horaria es GMT +2. Ahora son las 07:00:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi