如何根据另一个表的Title nvarchar(max)
列创建计算列?
我想在表1中根据Title
使表2中的docId = DocId
成为计算列。我一直试图在SSMS中将它添加为计算列,它不会让我。
表1
AssetId Title DocId
========================
表2
DocId Title
=========================
5 Disaster
10 Recovery
15 Pending
答案 0 :(得分:2)
计算列的定义明确指出列必须位于同一个表中(here)。
你可能想要的是一个观点。
create view vw_table1 as
select t.AssetId, d.Title, t.docid
from table1 t left outer join
table2 d
on t.docid = d.docid
答案 1 :(得分:1)
您无法使用其他表列创建计算列。但您可以将表1定义为 AssetId,DocId并根据需要创建视图。
CREATE VIEW YouVIEW
AS
SELECT T1.AssetId, T1.DocId, T2.Title
FROM Table1 T1
JOIN Table2 T2
ON T1.DocId = T2.DocId
这是参数化的内联函数
CREATE FUNCTION dbo.GetValue (@DocId INT)
RETURNS TABLE
AS
RETURN
(SELECT T1.AssetId, T1.DocId, T2.Title
FROM Table1 T1
JOIN Table2 T2
ON T1.DocId = T2.DocId
WHERE T1.DocID = @DocId
)
GO