USE [hhh]
GO
/****** Object: StoredProcedure [dbo].[spwin_xyz] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[spwin_GetCiccio]
@a nvarchar(20)=null,
@b int =null,
@c int=null,
@d int=null,
@e int=null,
@f int=null,
@g int=null
as
declare @sql nvarchar(4000),
@paramlist nvarchar(4000)
set @sql = ' select * from varie join'
if((CHARINDEX('WHERE',@sql))>0)
begin
if( @a is not null and @a!='')
begin
set @sql = @sql + ' AND alike @a+''%'''
end
end
else
begin
if( @ais not null and @a!='')
begin
set @sql = @sql + ' WHERE a like @a+''%'''
end
end
--faccio lo stesso per b, c, d, e, f, g
select @paramlist = '@anvarchar,
@b int,
@c int,
@d int,
@e int,
@f int,
@g int'
exec sp_executesql @sql,@paramlist,@a,@b,@c,@d,@e,@f,@g
ciao a tutti..ho questa query che dovrebbe far si che se non passo parametri mi esegue solo la select from, se invece passo uno o più paramtetri mi controlla se esiste già un where e allora mi attacca una seconda clausola altrimenti mi aggiun ge la clausola where.
ho provato a far girare la query passando come parametro a un codice ma il risultato è che la clausola where non viene assolutamente aggiunta..in pratica esegue solo il select from. la stessa query copiata e incollata e aggiunta la clusola where funziona perfettamente... essendo nuovo a questo linguaggio..c è qualcosa che sbaglio?
grazie a tutti
dan