una brutalidad?

25/02/2004 - 19:45 por Emerson | Informe spam
quise hacer esta query, por ignorancia, porque al estudia EXISTS, me di
cuenta que lo que estoy haciendo es una brutalidad.

cómo lo debo hacer, si en la misma query quiero comprobar si existen los
valores, de no ser así ingresarlos.

gracias.

Emerson

IF NOT EXISTS (SELECT id_producto FROM PFP WHERE id_producto = 10 AND
id_forma_pago = 4)
(INSERT INTO PFP(id_producto, id_forma_pago) VALUES (10, 4))

Preguntas similare

Leer las respuestas

#6 Emerson
26/02/2004 - 14:35 | Informe spam
ya que estaba ocupando EXISTS para validar los datos en una tabla y luego
insertandoles, y me percate que EXISTS es para otra cosa, es más similar al
IN...

EG


"Juan Carlos Leguizamón" escribió
en el mensaje news:#wmNp4H$
Hola, esta vez no entendí. ¿porque esto es una brutalidad?

"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:%23F8xfC$%
> quise hacer esta query, por ignorancia, porque al estudia EXISTS, me di
> cuenta que lo que estoy haciendo es una brutalidad.
>
> cómo lo debo hacer, si en la misma query quiero comprobar si existen los
> valores, de no ser así ingresarlos.
>
> gracias.
>
> Emerson
>
> IF NOT EXISTS (SELECT id_producto FROM PFP WHERE id_producto = 10 AND
> id_forma_pago = 4)
> (INSERT INTO PFP(id_producto, id_forma_pago) VALUES (10, 4))
>
>


Respuesta Responder a este mensaje
#7 Juan Carlos Leguizamón
26/02/2004 - 16:35 | Informe spam
Hola, esta vez no entendí. ¿porque esto es una brutalidad?

"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:%23F8xfC$%
quise hacer esta query, por ignorancia, porque al estudia EXISTS, me di
cuenta que lo que estoy haciendo es una brutalidad.

cómo lo debo hacer, si en la misma query quiero comprobar si existen los
valores, de no ser así ingresarlos.

gracias.

Emerson

IF NOT EXISTS (SELECT id_producto FROM PFP WHERE id_producto = 10 AND
id_forma_pago = 4)
(INSERT INTO PFP(id_producto, id_forma_pago) VALUES (10, 4))


Respuesta Responder a este mensaje
#8 Javier Loria
26/02/2004 - 19:01 | Informe spam
Hola:
Pues a mi me parece que NO es una brutalidad y es perfectamente valido
el patron de INSERCION:
=IF NOT EXISTS (...)
BEGIN
INSERT .
END
= Yo particularmente soy mas amigo de:
=IF EXISTS(...)
BEGIN
RAISERROR(...)
ROLLBACK
END
IF EXISTS(..)
BEGING
RAISERROR(...)
ROLLBACK
END

BEGIN TRAN
INSERT ...
IF @@ERROR <> THEN
INSERT ...
IF @@ERROR <> THEN
INSERT ...
COMMIT
= Pero me parece PERFECTAMENTE VALIDO el codigo que escribes.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Emerson <emerson_sacar_arroba_leshalles.cl> escribio:
ya que estaba ocupando EXISTS para validar los datos en una tabla y
luego insertandoles, y me percate que EXISTS es para otra cosa, es
más similar al IN...

EG


"Juan Carlos Leguizamón"
escribió en el mensaje news:#wmNp4H$
Hola, esta vez no entendí. ¿porque esto es una brutalidad?

"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:%23F8xfC$%
quise hacer esta query, por ignorancia, porque al estudia EXISTS,
me di cuenta que lo que estoy haciendo es una brutalidad.

cómo lo debo hacer, si en la misma query quiero comprobar si
existen los valores, de no ser así ingresarlos.

gracias.

Emerson

IF NOT EXISTS (SELECT id_producto FROM PFP WHERE id_producto >>> 10 AND id_forma_pago = 4)
(INSERT INTO PFP(id_producto, id_forma_pago) VALUES (10, 4))
Respuesta Responder a este mensaje
#9 Juan Carlos Leguizamón
26/02/2004 - 21:19 | Informe spam
Totalmente de acuerdo, ya decia yo que no podia estar tan equivocado en mis
creencias ...

"Javier Loria" escribió en el mensaje
news:eefXfbJ$
Hola:
Pues a mi me parece que NO es una brutalidad y es perfectamente valido
el patron de INSERCION:
=> IF NOT EXISTS (...)
BEGIN
INSERT .
END
=> Yo particularmente soy mas amigo de:
=> IF EXISTS(...)
BEGIN
RAISERROR(...)
ROLLBACK
END
IF EXISTS(..)
BEGING
RAISERROR(...)
ROLLBACK
END

BEGIN TRAN
INSERT ...
IF @@ERROR <> THEN
INSERT ...
IF @@ERROR <> THEN
INSERT ...
COMMIT
=> Pero me parece PERFECTAMENTE VALIDO el codigo que escribes.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Emerson <emerson_sacar_arroba_leshalles.cl> escribio:
> ya que estaba ocupando EXISTS para validar los datos en una tabla y
> luego insertandoles, y me percate que EXISTS es para otra cosa, es
> más similar al IN...
>
> EG
>
>
> "Juan Carlos Leguizamón"
> escribió en el mensaje news:#wmNp4H$
>> Hola, esta vez no entendí. ¿porque esto es una brutalidad?
>>
>> "Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
>> news:%23F8xfC$%
>>> quise hacer esta query, por ignorancia, porque al estudia EXISTS,
>>> me di cuenta que lo que estoy haciendo es una brutalidad.
>>>
>>> cómo lo debo hacer, si en la misma query quiero comprobar si
>>> existen los valores, de no ser así ingresarlos.
>>>
>>> gracias.
>>>
>>> Emerson
>>>
>>> IF NOT EXISTS (SELECT id_producto FROM PFP WHERE id_producto > >>> 10 AND id_forma_pago = 4)
>>> (INSERT INTO PFP(id_producto, id_forma_pago) VALUES (10, 4))


Respuesta Responder a este mensaje
#10 Miguel Egea
27/02/2004 - 08:55 | Informe spam
A mi no me parece esa forma del todo correcta porque los patrones
SElect-insert tienen varios problemas
el primero es que si el nivel de aislamiento es bajo, nada garantiza que dos
puestos no ejecuten las sentencias justo en el orden en que te de error por
clave duplicada de todas formas. El segundo es que si por el contrario pones
un nivel de aislamiento alto, tienes muchas posibilidades de obtener un
deadlock en los mismos casos. Por eso me decanto por recuperarme (en este
caso) del error de pk.


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"Juan Carlos Leguizamón" escribió
en el mensaje news:eNXYXXK$
Totalmente de acuerdo, ya decia yo que no podia estar tan equivocado en


mis
creencias ...

"Javier Loria" escribió en el mensaje
news:eefXfbJ$
> Hola:
> Pues a mi me parece que NO es una brutalidad y es perfectamente


valido
> el patron de INSERCION:
> => > IF NOT EXISTS (...)
> BEGIN
> INSERT .
> END
> => > Yo particularmente soy mas amigo de:
> => > IF EXISTS(...)
> BEGIN
> RAISERROR(...)
> ROLLBACK
> END
> IF EXISTS(..)
> BEGING
> RAISERROR(...)
> ROLLBACK
> END
>
> BEGIN TRAN
> INSERT ...
> IF @@ERROR <> THEN
> INSERT ...
> IF @@ERROR <> THEN
> INSERT ...
> COMMIT
> => > Pero me parece PERFECTAMENTE VALIDO el codigo que escribes.
> Saludos,
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
> Emerson <emerson_sacar_arroba_leshalles.cl> escribio:
> > ya que estaba ocupando EXISTS para validar los datos en una tabla y
> > luego insertandoles, y me percate que EXISTS es para otra cosa, es
> > más similar al IN...
> >
> > EG
> >
> >
> > "Juan Carlos Leguizamón"
> > escribió en el mensaje news:#wmNp4H$
> >> Hola, esta vez no entendí. ¿porque esto es una brutalidad?
> >>
> >> "Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
> >> news:%23F8xfC$%
> >>> quise hacer esta query, por ignorancia, porque al estudia EXISTS,
> >>> me di cuenta que lo que estoy haciendo es una brutalidad.
> >>>
> >>> cómo lo debo hacer, si en la misma query quiero comprobar si
> >>> existen los valores, de no ser así ingresarlos.
> >>>
> >>> gracias.
> >>>
> >>> Emerson
> >>>
> >>> IF NOT EXISTS (SELECT id_producto FROM PFP WHERE id_producto > > >>> 10 AND id_forma_pago = 4)
> >>> (INSERT INTO PFP(id_producto, id_forma_pago) VALUES (10, 4))
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida