Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment créer une colonne calculée dans une table SQL Server 2008

Vous pouvez envelopper votre requête dans la fonction comme celle-ci (elle A pour renvoyer une valeur) :

CREATE FUNCTION dbo.SumIt(@Key1 varchar(max))
returns float
as
begin
  return (select sum(UTOTALWBUD) from
   CONTACT1 inner join
   CONTACT2 on
   CONTACT1.ACCOUNTNO=CONTACT2.ACCOUNTNO
   where [email protected]
   group by KEY3)
END

Et utilisez cette fonction à la place avec le champ calc - quelque chose comme ceci :

alter table ManagerTaLog add WeeklyBudget as dbo.SumIt(Key1)

REMARQUE

que ce sera le tueur de performances pour des requêtes comme celle-ci :

select * from ManagerTaLog 

Vous devez modifier votre fonction de telle manière, c'est-à-dire accepter PAS varchar valeur, mais NVARCHAR(255) - du même type que la colonne Manager. Essayez-le.