restriccion en clausula IN ??

05/03/2008 - 13:23 por DarthSidious | Informe spam
buenos dias, tengo una duda,
en una consulta, en el Where, tengo un IN del estilo

not in(valor1,valor2,etc)

en ese in hay 77 "valores".

El problema es que esa consulta me da un error del tipo:

Servidor: mensaje 1205, nivel 13, estado 1, línea 1
La transacción (Id. de proceso 53) quedó en interbloqueo en thread |
communication buffer recursos con otro proceso y fue elegida como sujeto del
interbloqueo. Ejecute de nuevo la transacción.

Lo raro es que la consulta se ejecuta bien si le quito 2 valores a la lista
dentro del IN (quedando en total 75 valores).

Entoces, hay un numero maximo para poner en un IN ? hay alguna forma de
evitar esto?

gracias!!

Preguntas similare

Leer las respuestas

#1 Gux (MVP)
05/03/2008 - 14:08 | Informe spam
El error no es por un posible número máximo sino porque se produjo un
deadlock. Alguna peculiaridad tiene la consulta que usted provoca un deadlock.

Si el error es fácilmente reproducible, analice ese deadlock. En SQL Server
2005 usted puede hacer eso con el Profiler.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"DarthSidious" wrote:

buenos dias, tengo una duda,
en una consulta, en el Where, tengo un IN del estilo

not in(valor1,valor2,etc)

en ese in hay 77 "valores".

El problema es que esa consulta me da un error del tipo:

Servidor: mensaje 1205, nivel 13, estado 1, línea 1
La transacción (Id. de proceso 53) quedó en interbloqueo en thread |
communication buffer recursos con otro proceso y fue elegida como sujeto del
interbloqueo. Ejecute de nuevo la transacción.

Lo raro es que la consulta se ejecuta bien si le quito 2 valores a la lista
dentro del IN (quedando en total 75 valores).

Entoces, hay un numero maximo para poner en un IN ? hay alguna forma de
evitar esto?

gracias!!

Respuesta Responder a este mensaje
#2 Gux (MVP)
05/03/2008 - 14:12 | Informe spam
En caso de que usted use SQL Server 2000, analice los deadlocks como se
recomienda en:

Gathering Deadlock Information
http://www.devx.com/codemag/Article/17447/0/page/7

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Gux (MVP)" wrote:

El error no es por un posible número máximo sino porque se produjo un
deadlock. Alguna peculiaridad tiene la consulta que usted provoca un deadlock.

Si el error es fácilmente reproducible, analice ese deadlock. En SQL Server
2005 usted puede hacer eso con el Profiler.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"DarthSidious" wrote:

> buenos dias, tengo una duda,
> en una consulta, en el Where, tengo un IN del estilo
>
> not in(valor1,valor2,etc)
>
> en ese in hay 77 "valores".
>
> El problema es que esa consulta me da un error del tipo:
>
> Servidor: mensaje 1205, nivel 13, estado 1, línea 1
> La transacción (Id. de proceso 53) quedó en interbloqueo en thread |
> communication buffer recursos con otro proceso y fue elegida como sujeto del
> interbloqueo. Ejecute de nuevo la transacción.
>
> Lo raro es que la consulta se ejecuta bien si le quito 2 valores a la lista
> dentro del IN (quedando en total 75 valores).
>
> Entoces, hay un numero maximo para poner en un IN ? hay alguna forma de
> evitar esto?
>
> gracias!!
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida