この回答が 2 年遅れて出てくることは承知していますが、Google でこの投稿を見つけた人を助けるために:
ユーザー定義関数を定義し、それを計算値として使用することは完全に合法です。この関数には、他のテーブルからの選択ステートメントが含まれる場合があります。
CREATE FUNCTION dbo.getAdViews(@packageId int) RETURNS INT AS BEGIN declare @bav int select @bav = BaseAdViews from Packages where PackageId = @packageId RETURN @bav END
プレ>次に、計算列で式
dbo.getSumAdViews(PackageId)+MediaSpend
を使用するだけです そのまま: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]
プレ>