Jag vet att det här svaret kommer två år för sent, men bara för att hjälpa alla som googlar och hittar det här inlägget:
Det är helt lagligt att definiera en användardefinierad funktion och använda den som det beräknade värdet. Den här funktionen kan innehålla valda satser från andra tabeller.
CREATE FUNCTION dbo.getAdViews(@packageId int)
RETURNS INT
AS
BEGIN
declare @bav int
select @bav = BaseAdViews from Packages where PackageId = @packageId
RETURN @bav
END
Sedan i din beräknade kolumn använder du bara uttrycket dbo.getSumAdViews(PackageId)+MediaSpend
som så:
CREATE TABLE [dbo].[Orders](
[OrderId] [int] IDENTITY(1,1) NOT NULL,
[PackageId] [int] NOT NULL,
[MediaSpend] [int] NULL,
[TotalAdViews] AS dbo.getAdViews(PackageId)+MediaSpend
) ON [PRIMARY]