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

Numero de valores aceptados en el "IN" de un WHERE

Estas en el tema de Numero de valores aceptados en el "IN" de un WHERE en el foro de Bases de Datos General en Foros del Web. Buenas horas a todos.... Quisas suene tonta mi pregunta. pero quiero sacarme una duda q podria hacer que mi aplicacion no funcione.... en una sentencia ...
  #1 (permalink)  
Antiguo 30/10/2008, 17:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 16 años, 7 meses
Puntos: 0
Mensaje Numero de valores aceptados en el "IN" de un WHERE

Buenas horas a todos....
Quisas suene tonta mi pregunta. pero quiero sacarme una duda q podria hacer que mi aplicacion no funcione....

en una sentencia
SELECT * FROM MiTabla WHERE mi_campo IN ('valor1','valor2','valor3' ..... )

Mi pregunta es muy simple.... En el Where en el IN hasta cuantos "valores" admite ??? . tiene limite ?? o puedo colocar los q yo desee... con que acepte unos 500 me contento ... jejeje.. Ojala alguien me saque de esa duda media LOCA....

gracias.
  #2 (permalink)  
Antiguo 30/10/2008, 18:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: Numero de valores aceptados en el "IN" de un WHERE

el IN es una cláusula que genera un "match" entre un valor y un conjunto de n campos, lso cuales pueden provenir de una lista escrita o de una subconsulta.
Como es evidente, si es capaz de responder a una subconsulta es que su límite de "matching" es el mismo que el de un JOIN... demasiado grande.
No creo que te debas preocupar por el límite. El problema debe estar produciéndose por otro inconveniente y no por el límite del IN.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/10/2008, 08:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Numero de valores aceptados en el "IN" de un WHERE

Muchas gracias por tu respuesta. y gracias por despejar mi duda. te cuento lo q intento hacer...
Tengo unos datos q vienen de una BD de un dispositivo mOVIL. (sdf) ... y kiero insertarlos en una BD sqlserver. hasta alli todo correcto. mi problema esta en querer validar los datos q estoy ingresando. si por ejemplo de los 500 registros de vienen de la bd movil unos 10 de ellos ya estan registados en la BD sqlserver. pues que me de un mensaje diciendome "10 REGISTROS YA HAN SIDO INSERTADOS, DESEA SOBREESCRIBILOS?..." esto lo he planteado solucionarlo de la siguiente forma... ( en vb.net)

1.- capturo los 500 del movil y los guardo en un DATATABLE.
2.- recooro el dtt para formar el IN q luego ira en el WHERE de una consulta que enviare al BD sqlserver algo como esto..
Código:
 
SELECT count(*) FROM MI_tabla WHERE codigoID IN ('001','002','003',....'500')
asumo q esa consulta me devolverá cuandos de los codigos puestos en el IN ya estan en la tabla MI_TABLA (guiardada en SQLSERVER) .... si ninguno de ellos ya esta en la BD pues arrojará 0 pero si 10 de ellos ya estan, pues saldrá 10...

haber si me puedes ayudar otra forma de hacer eso... no kiero ir recorriendo e ir verificando unoj por uno. sino de una sola consulta verificar cuandos ya han sido registados... y si el usuario acepta pues ya eso es otra cosa que tambien me esta rompiuendo el coco... pero por el momento esta duda ...

Gracias.

PD: hasta donde se. no podria hacer una consulta a ambas BDs a la vez desde SQLSERVER 2000 ... (no he encontrado la forma de hacer eso, por eso digo q HASTA DONDE SE ) si fuera asi. me ahorraria mucho el trabajo y simplemente haria un SELECT a la tabla q viene de la BD movil... BUENO... haber si me ayudas con esto.
  #4 (permalink)  
Antiguo 31/10/2008, 09:23
 
Fecha de Ingreso: septiembre-2008
Mensajes: 53
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Numero de valores aceptados en el "IN" de un WHERE

Porque no llevas toda la tabla del movil a sql server. Y haces un

Select

Where NOT IN(Select FRom LaTabladelMovil);
  #5 (permalink)  
Antiguo 31/10/2008, 09:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 16 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Numero de valores aceptados en el "IN" de un WHERE

hola... te refieres a insertar toda el contenido de mi tabla del movil a una tabla X creada ( sqlserver) exclusivamente para esta funcion... mmmm seria buena opcion. a alguno se le ocurriria alguna otra forma. o algun problema q causaria esto ??? .... algunas cosas sobre Rendimiento .. cual de las dos formas seria la mas eficiente ???
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 01:54.