Hola gente

Tengo el siguiente problema , tengo la siguiente Query de SQL en donde uso la funcion EXEC() para ejecutar una Quero dinámicamente:

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE FUNCTION dbo.GetCountries

(

      @QuerySearch VarChar(8000)

   

)

 

RETURNS @Countries TABLE(CountryName varchar(50), ClientName varchar(50) , AnnualicedA  numeric(18,4) ,

                    AnnualicedB  numeric(18,4) ,MarketSharesA  numeric(18,4) , MarketSharesB  numeric(18,4),evolution numeric(18,4) )

AS

BEGIN

 

Declare @SQL VarChar(8000)

--DECLARE @Countries TABLE(Country varchar(50))

 

SET @SQL = 'SELECT DISTINCT E_COUNTRY.X_country_name AS Country

                     FROM

                     E_GPS_CONTRACT LEFT OUTER JOIN  E_COUNTRY ON E_COUNTRY.Country_ID = E_GPS_CONTRACT.Country_ID

                     WHERE E_COUNTRY.X_country_name IS NOT NULL '

 

SET @SQL = @SQL +  @QuerySearch + 'INTO @Countries'

 

Exec( @SQL )

 

RETURN

 

END

GO

-------------------------------------------------------------------------------

Pero al querer ejecutarlo me tira el siguiente error y no tengo idea que puede ser…:

 

Msg 443, Level 16, State 14, Procedure GetCountries, Line 22

Invalid use of side-effecting or time-dependent operator in 'EXECUTE STRING' within a function.

 

 

Si alguien tiene idea que puede ser lo agradecere

Saludos

 

 

 

Julián R Berlín
Hexacta S.A.
tel. +54 11 4779 6326.
Andrés Arguibel 2860.
Buenos Aires, Argentina.

Responder a