SQL服务器2008计算列

问题描述:

这是我在计算机列规范式中的表中调用贷款SQL服务器2008计算列

(dateadd(month,(1),[CheckOutDate])) 

的(1)应当由loan_period从另一个表来替换称为item_details

这是可能的,公式看起来如何。据我所知,

+2

您需要为此创建一个UDF - 两个表之间的关系是什么? – sgeddes 2013-02-24 00:24:21

+1

如果您需要计算此字段,我会创建一个db函数,并在插入新记录或需要时更新字段时使用触发器更新字段。 [MS SQL](http://msdn.microsoft.com/en-us/library/ms189799.aspx) – 2013-02-24 00:27:15

+0

@sgeddes好的感谢清除 – Dynamiite 2013-02-24 01:41:37

Computed columns只引用同一个表中的列。

要做到你想要的这里,你可以在这两个表时,两个表被修改,或者(更容易),将填充数据创建VIEW定义TRIGGER

您可以创建一个计算列,该列使用一个函数,然后引用另一个表。

例如

create table t (
    a int primary key, 
    b int 
) 
GO 

create function dbo.f(@a int) 
returns int 
as 
begin 
    return (select b from t where a = @a); 
end 
GO 

create table t2 (
    c int primary key, 
    d as dbo.f(c) 
) 
GO 

insert into t values (1, 2) 
insert into t2 (c) values (1) 

select * from t2 

N.B.在做这件事时你应该考虑性能方面的考虑,并且确保至少你有正确的索引。