2014-06-11 19 views
0

我们如何在MDS中自动显示记录的所有者。我们如何显示在MDS中加载记录的用户

例如,我有2组,即A组和B组。

进入记录如下

甲组用户:

NAME CODE 
Bike 1 
Car  2 

同样甲组用户输入记录如下:

NAME CODE 
Bus  3 
Lorry 4 

我想要显示是

NAME CODE Owner 
Bike 1  Group A 
Car  2  Group A 
Bus  3  Group B 
Lorry 4  Group B 

我们该如何做到这一点?我们需要为此编写任何自定义代码。请在这方面帮助我

回答

0

在每个已创建的订阅视图中都有[EnterUserName]列。因此,您可以做的是向您的实体添加一列,并创建一个插入触发器,将此信息复制到新创建的列。触发器必须为保存实体主要信息的“基本表”缓冲。

有关如何创建订阅视图看: http://msdn.microsoft.com/en-us/library/ff487013.aspx

如果你想检查哪些表包含您可以搜索MDSDB数据库的视图,并执行实体的信息“改成”语句。该表的名称应该是这样的[TBL _... EN]

现在在表上创建一个触发器:

CREATE TRIGGER [mdm].[SOME_NAME] 
    ON [mdm].[YOUR_BASE_TABLE] 
    AFTER INSERT 

AS 
BEGIN 

    SET NOCOUNT ON; 
    UPDATE [mdm].[YOUR_SUBSCRIPTION_VIEW] 
    SET [Owner] = [EnterUserName] 
    FROM [mdm].[YOUR_SUBSCRIPTION_VIEW] 
    WHERE ID = (SELECT MAX(ID) FROM [mdm].[YOUR_SUBSCRIPTION_VIEW]) 

END 
+0

非常感谢你为这个代码。它按预期工作。我想知道更多关于它的细节。例如在我的基础表中,我只能看到名称和代码。我看不到用户定义的列。当我们更新订阅视图时,它是如何自动反映在MDS中的。谢谢! – user3607647

+0

我很高兴它为你解决。不幸的是,MDS后端没有很好地记录。但是如果你看看SP [udpCreateAttributeViews],你会注意到当你创建一个视图时执行的更新表信息的主要步骤。 – Narti

相关问题