Duda urgente Coalesce

16/11/2005 - 07:46 por Carolina | Informe spam
Hola buenas noches, tengo una duda urgente, agradezco de antemano la ayuda
que me puedan suministrar.

Tengo este stored procedure:

alter procedure SP_ProductsQueryAllByParameters
@IdBranch tinyint,
@ProductCode varchar(53)=null,
@TireSize varchar(255)=null,
@Group varchar(255)=null,
@GroupExterno varchar(255)=null,
@Dot varchar(255)=null,
@Tess varchar(255)=null,
@Description varchar(255)=null,
@Rim varchar(255)=null,
@Brand varchar(255)=null,
@SideWall varchar(255)=null,
@TubeType varchar(255)=null,
@Ply varchar(255)=null,
@Upc varchar(255)=null,
@Combination varchar(53)=null,
@Tread varchar(53)=null,
/*@Sload varchar(53)=null,
@Rtg varchar(255)=null,
@Quality varchar(255)=null,
@PurchasingCode varchar(53)=null,
@OriginalCode varchar(53)=null,
@Weight varchar(53)=null,
@Kgms varchar(53)=null,
@OriginCountryId tinyint=null,
@Pattern varchar(255)=null,
@GreenTire varchar(255)=null,
@AtcCodTess varchar(255)=null,
@Design varchar(255)=null,
@BodyPly varchar(255)=null,
@BeltPly varchar(255)=null,
@CapPly varchar(255)=null,*/
@Active bit=null
as
Code,TireSize,Description,Active
select ProductCode,Tire_Size,[Description],Active
from products
where IdFilial=@IdBranch and
ProductCode=coalesce(@ProductCode,ProductCode) and
Tire_Size=coalesce(@TireSize,Tire_Size) and [Group]=coalesce(@Group,[Group])
and GroupExterno=coalesce(@GroupExterno,GroupExterno) and
Dot=coalesce(@Dot,Dot) and Tess=coalesce(@Tess,Tess) and
[Description]=coalesce(@Description,[Description]) and
Rim=coalesce(@Rim,Rim) and Brand=coalesce(@Brand,Brand) and
SideWall=coalesce(@SideWall,SideWall) and
Tube_Type=coalesce(@TubeType,Tube_Type) and Ply=coalesce(@Ply,Ply) and
Upc=coalesce(@Upc,Upc) and Combination=coalesce(@Combination,Combination)
and
Tread=coalesce(@Tread,Tread) and /*Sload=coalesce(@Sload,Sload) and
Rtg=coalesce(@Rtg,Rtg) and Quality=coalesce(@Quality,Quality) and
Purchasing_Code=coalesce(@PurchasingCode,Purchasing_Code) and
Original_Code=coalesce(@OriginalCode,Original_Code) and
Weight=coalesce(@Weight,Weight) and Kgms=coalesce(@Kgms,Kgms) and
OriginCountryId=coalesce(@OriginCountryId,OriginCountryId) and
Pattern=coalesce(@Pattern,Pattern) and
Green_Tire=coalesce(@GreenTire,Green_Tire) and
Atc_Cod_Tess=coalesce(@AtcCodTess,Atc_Cod_Tess) and
Design=coalesce(@Design,Design) and Body_Ply=coalesce(@BodyPly,Body_Ply) and
Belt_Ply=coalesce(@BeltPly,Belt_Ply) and Cap_Ply=coalesce(@CapPly,Cap_Ply)
and*/ Active=coalesce(@Active,Active)

go

Como notarán tengo comentado a partir de sload, pues bien apenas agrego un
parametro mas esto no se trae ninguna data. Hay alguna limitante de coalesce
sobre el numero de declaraciones? Alguien conoce otra forma sencilla de
hacerlo?

Gracias de nuevo

Carolina D.
 

Leer las respuestas

#1 Carlos Sacristán
16/11/2005 - 09:31 | Informe spam
No, no hay ningún límite en ese sentido. Sin embargo, no creo que ese
procedimiento sea muy eficiente si la tabla tiene muchos datos. Echa un
vistazo a este artículo que explica las posibilidades que hay para búsquedas
dinámicas que, aunque está en inglés, creo que se entiende bastante bien:

http://www.sommarskog.se/dyn-search.html


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Carolina" escribió en el mensaje
news:
Hola buenas noches, tengo una duda urgente, agradezco de antemano la ayuda
que me puedan suministrar.

Tengo este stored procedure:

alter procedure SP_ProductsQueryAllByParameters
@IdBranch tinyint,
@ProductCode varchar(53)=null,
@TireSize varchar(255)=null,
@Group varchar(255)=null,
@GroupExterno varchar(255)=null,
@Dot varchar(255)=null,
@Tess varchar(255)=null,
@Description varchar(255)=null,
@Rim varchar(255)=null,
@Brand varchar(255)=null,
@SideWall varchar(255)=null,
@TubeType varchar(255)=null,
@Ply varchar(255)=null,
@Upc varchar(255)=null,
@Combination varchar(53)=null,
@Tread varchar(53)=null,
/*@Sload varchar(53)=null,
@Rtg varchar(255)=null,
@Quality varchar(255)=null,
@PurchasingCode varchar(53)=null,
@OriginalCode varchar(53)=null,
@Weight varchar(53)=null,
@Kgms varchar(53)=null,
@OriginCountryId tinyint=null,
@Pattern varchar(255)=null,
@GreenTire varchar(255)=null,
@AtcCodTess varchar(255)=null,
@Design varchar(255)=null,
@BodyPly varchar(255)=null,
@BeltPly varchar(255)=null,
@CapPly varchar(255)=null,*/
@Active bit=null
as
Code,TireSize,Description,Active
select ProductCode,Tire_Size,[Description],Active
from products
where IdFilial=@IdBranch and
ProductCode=coalesce(@ProductCode,ProductCode) and
Tire_Size=coalesce(@TireSize,Tire_Size) and


[Group]=coalesce(@Group,[Group])
and GroupExterno=coalesce(@GroupExterno,GroupExterno) and
Dot=coalesce(@Dot,Dot) and Tess=coalesce(@Tess,Tess) and
[Description]=coalesce(@Description,[Description]) and
Rim=coalesce(@Rim,Rim) and Brand=coalesce(@Brand,Brand) and
SideWall=coalesce(@SideWall,SideWall) and
Tube_Type=coalesce(@TubeType,Tube_Type) and Ply=coalesce(@Ply,Ply) and
Upc=coalesce(@Upc,Upc) and Combination=coalesce(@Combination,Combination)
and
Tread=coalesce(@Tread,Tread) and /*Sload=coalesce(@Sload,Sload) and
Rtg=coalesce(@Rtg,Rtg) and Quality=coalesce(@Quality,Quality) and
Purchasing_Code=coalesce(@PurchasingCode,Purchasing_Code) and
Original_Code=coalesce(@OriginalCode,Original_Code) and
Weight=coalesce(@Weight,Weight) and Kgms=coalesce(@Kgms,Kgms) and
OriginCountryId=coalesce(@OriginCountryId,OriginCountryId) and
Pattern=coalesce(@Pattern,Pattern) and
Green_Tire=coalesce(@GreenTire,Green_Tire) and
Atc_Cod_Tess=coalesce(@AtcCodTess,Atc_Cod_Tess) and
Design=coalesce(@Design,Design) and Body_Ply=coalesce(@BodyPly,Body_Ply)


and
Belt_Ply=coalesce(@BeltPly,Belt_Ply) and Cap_Ply=coalesce(@CapPly,Cap_Ply)
and*/ Active=coalesce(@Active,Active)

go

Como notarán tengo comentado a partir de sload, pues bien apenas agrego un
parametro mas esto no se trae ninguna data. Hay alguna limitante de


coalesce
sobre el numero de declaraciones? Alguien conoce otra forma sencilla de
hacerlo?

Gracias de nuevo

Carolina D.


Preguntas similares