Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да създадете изчисляема колона в таблица на SQL Server 2008

Можете да обвиете заявката си във функцията по този начин (тя ИМА за връщане на една стойност):

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

И използвайте тази функция вместо това с полето calc - нещо като това:

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

ЗАБЕЛЕЖКА

че ще бъде убиецът на производителността за заявки като тази:

select * from ManagerTaLog 

Трябва да промените функцията си по такъв начин, че приемете НЕ varchar стойност, но NVARCHAR(255) - същия тип като колоната Мениджър. Опитайте.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Въведение в SQL Server

  2. SQL Изберете стойности в скоби

  3. Копирайте данните в друга таблица

  4. Как мога да открия и обвързвам промени между стойностите на редовете в SQL таблица?

  5. SqlDataSourceEnumerator.Instance.GetDataSources() не намира локален екземпляр на SQL сървър 2008