Buenas,
Tengo un pequeño problema con unas consultas en SqlServer. Tengo ahora mismo una tabla con los mismos datos en el entorno de pruebas y en el de producción. Y he descubierto que para una misma consulta (extraida con el profiler de sqlserver), hay una diferencia de 10 datos, devolviendo menos cuando se ejecuta en producción.
Consultados estos 10, tienen exactamente los mismos valores y deberían devolverse con la consulta inicial.
La única diferencia real que hay es que el entorno de test es 2005 y producción 2008.
¿Alguna idea sobre que puede estar pasando?
Edito para que salga la consulta:
exec sp_executesql N'SELECT campo_nvarchar FROM dbo.TABLA where fid = @fid
AND CONTAINS(t,@t) AND CONTAINS(c,@c) AND (CONTAINS(v1, @v1)
OR CONTAINS(v2, @v2))',
N'@fid bigint,@t nvarchar(5),@c nvarchar(124),@v1 nvarchar(1130),@v2 nvarchar(1121)',
@fid=BIGINT,@t=N'"STRING"',@c=N'STRING',@v1=N'STRING',@v2=N'STRING'
La única particularidad de la consulta, es que tanto c como v1 y v2, son parametros del CONTAINS, y van con este formato: "V1" OR "V2" OR ... "Vn".
UPDATE: Bueno, he visto que los valores que se recuperan mal son los de v1 o v2 que se cumplen más de una vez para el mismo (es decir, en el campo v hay más de un valor de v1 o v2). Salvo un campo, que se devuelve en los dos y se cumple cuatro veces...
UPDATE2: Pues no he encontrado que era lo que fallaba, pero hemos conseguido solucionarlo recurriendo a una tabla diferente con los datos dispuestos de otra forma. ¡Muchas gracias!