0

Title nvarchar(max)如何根据另一个表的列创建计算列?

我想Title在表 1 中创建一个基于 table2 的计算列docId = DocId。我一直在尝试将其添加为 SSMS 中的计算列,但它不会让我这样做。

表格1

AssetId  Title   DocId
========================

表2

DocId  Title      
=========================
5      Disaster       
10     Recovery        
15     Pending      
4

2 回答 2

2

计算列的定义明确指出这些列必须在同一个表中(此处)。

你可能想要的是一个视图。

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
于 2013-01-28T15:41:22.580 回答
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
于 2013-01-28T15:43:31.087 回答