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

計算列の定義では、列が同じテーブルにある必要があることが明示的に示されています ( 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
于 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 に答える