1

このビューを想定します。

SELECT
 [Pr].[Id],
 [Pr].[Title],
 [Pr].[Category_Id] AS [CategoryId],
 [Pr].[IsScanAllowed],
 [Pr].[MaxLevelOfRegistration],
 [Cat].[Title] AS [Category],
 [Cat].[MajorCategory_Id] AS [MajorCategoryId],
 [Mc].[Title] AS [MajorCategory]
 [Cat].[Title]+[Pr].[Title] AS [FullProduct]
FROM [Products].[Product] AS [Pr]
INNER JOIN [Products].[Category] AS [Cat] ON [Pr].[Category_Id] = [Cat].[Id]
INNER JOIN [Products].[MajorCategory] AS [Mc] ON [Cat].[MajorCategory_Id] = [Mc].[Id];

したがって[FullProduct]、他のすべての列にベース列がある計算列であることを除いて、このビューの各列のベース列を見つける方法はありますか。このようなもの:BaseOf(MajorCategoryId) is [Products].[MajorCategory].[Id]私は使用しようとしましMicrosoft.SqlServer.Management.Smoたが、何も見つかりません、誰かがこれについて何か考えを持っていますか?

4

1 に答える 1

1

クライアントに戻されないため、それを知る方法はありませんが、列名を作成して表示することができます-次のようになります。

SELECT
 [Pr].[Id] AS [Products_Id],
 [Pr].[Title] AS [Products_Title],
 [Pr].[Category_Id] AS [Products_CategoryId],
 [Pr].[IsScanAllowed] AS [Products_IsScanAllowed],
 [Pr].[MaxLevelOfRegistration] [Products_MaxLevelOfRegistration],
 [Cat].[Title] AS [Category_Title],
 [Cat].[MajorCategory_Id] AS [Category_MajorCategoryId],
 [Mc].[Title] AS [MajorCategory_Title]
 [Cat].[Title]+[Pr].[Title] AS [FullProduct]
FROM [Products].[Product] AS [Pr]
INNER JOIN [Products].[Category] AS [Cat] ON [Pr].[Category_Id] = [Cat].[Id]
INNER JOIN [Products].[MajorCategory] AS [Mc] ON [Cat].[MajorCategory_Id] = [Mc].[Id];

次に、テーブルを表示するために、分割の最初のアイテムを取得できます_


SQLメタデータを使用してビューのソースをダウンロードして解析することもできますが、それは私には大変な作業のように思えます。

于 2012-07-15T13:59:13.957 に答える