Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como declaro a variável escalar em uma VIEW no Sql Server (2005)


Como Alex K mencionou, você deve escrevê-lo como uma função com valor de tabela embutido. Aqui está o artigo que descreve sobre isso.

Em suma, a sintaxe seria algo como
CREATE FUNCTION dbo.GetForPeriod
    ( @StartDate datetime, @EndDate datetime) 
RETURNS TABLE 
RETURN 
   SELECT  [[ your column list ]]
   FROM    [[ table list]
   WHERE   [[some column] BETWEEN @StartDate AND @EndDate

Você pode ter uma consulta de seleção (por mais complexa que seja, pode usar CTE). E então você vai usá-lo como
SELECT * FROM dbo.GetForPeriod('1-Jan-2010', '31-Jan-2010')