小编Tim*_*dge的帖子

使用Visual Studio 2010数据库项目填充静态数据的最佳实践?

如何使用Visual Studio数据库项目使用静态的源控制数据填充数据库?我已经尝试了以下所有三种策略,发现每一种策略都比上一次更好.我使用但不完全满意策略3.你有另一种选择吗?

  1. 将插入脚本放在"数据生成计划"文件夹中.引用"Script.PostDeployment.sql"文件中的脚本以将其包含在部署过程中.

    - 优点:直截了当
    - 缺点:slooooooow
    - 缺点:后续部署必须首先删除静态数据或检查数据是否存在=>效率低下

  2. 使用最方便的方法(例如,可能是SSMS编辑表功能)第一次将数据插入数据库.使用bcp命令行实用程序提取该数据,以创建一堆数据文件并将其添加到项目中.创建"Scripts.PostDeployment.sql"文件中引用的脚本,该脚本为每个数据文件执行"批量插入"语句.

    - 优点:比插入语句快得多
    - 优点:可以利用SSMS编辑表功能
    - 缺点:每个批量插入语句都需要数据文件的完全限定文件名,所以如果数据文件位于我的机器上"C" :\ Projects\Dev\Source\foo.dat"然后远程开发机器也必须在那个位置或批量插入语句失败
    - 缺点:必须删除现有的静态数据,然后在后续部署中执行批量插入语句

  3. 在部署期间创建临时表以保存静态数据,并使用sql merge语句将这些表与目标表同步.见这些博客文章.

    - 优点:似乎sql merge对问题有完美的语义
    - 缺点:这个策略的逻辑在每个文件中重复 - 缺点:表定义作为sql合并文件中的临时表重复

是否有更优越的替代战略?我放弃了策略1,因为它太慢了.由于完全限定的文件名问题,我不喜欢策略2.我对战略3感到满意但并不激动.是否有最好的做法?

database-project visual-studio-2010 populate

24
推荐指数
2
解决办法
8292
查看次数

如何在Visual Studio中的源代码管理资源管理器中跳转到文件

我喜欢解决方案资源管理器>右键单击> Visual Studio 2010的PowerCommands扩展的"打开包含文件夹"功能.我希望相当于"在源代码管理资源管理器中跳转到位置"功能.如何找到给定打开文件的TFS中的位置,或解决方案资源管理器中的文件(或者解决方案导航器中的文件是否具有Productivity Power Tools扩展)?

最好的答案是几次鼠标点击而没有键盘.下一个最佳答案是热键映射.

到目前为止,我找到的唯一解决方案是使用具有"在源代码管理中查找"功能的Productivity Power Tools扩展.可以右键单击结果列表中的文件"在Source Control Explorer中打开文件夹".此解决方案的缺点是需要多次点击,如果文件在不同文件夹中存在同名,则搜索结果可以匹配多个文件.

tfs visual-studio-2010

16
推荐指数
3
解决办法
8227
查看次数

如何加入dbo.LocalizedLabelView以获取Dynamics CRM中的表单标签?

在Dynamics CRM中,我经常从业务用户那里获得创建报告的要求.业务用户了解并谈论实体显示名称属性标签.要编写查询,我需要将它们映射到实体名称属性名称.我想用一个查询来查看.

我将如何加入dbo.LocalizedLabelView视图以获取以下查询中的AttributeLabel列?我无法弄清楚ObjectId应该引用什么.(如果你能告诉我你是如何找到答案我会特别感激的!)

select
    [EntityName]           = entityNames.Name,
    [EntityDisplayName]    = entityDisplayNames.Label,
    [AttributeName]        = attributeNames.PhysicalName,
    [AttributeDisplayName] = attributeDisplayNames.Label
    --[AttributeLabel]     = attributeLabels.Label
from 
    dbo.EntityView entityNames

    inner join dbo.LocalizedLabelView entityDisplayNames
        on entityDisplayNames.ObjectId = entityNames.EntityId
        and entityDisplayNames.ObjectColumnName = 'LocalizedName'

    left outer join dbo.AttributeView attributeNames
        on attributeNames.EntityID = entityNames.EntityID

    inner join dbo.LocalizedLabelView attributeDisplayNames
        on attributeDisplayNames.ObjectId = attributeNames.AttributeID
        and attributeDisplayNames.ObjectColumnName = 'DisplayName'
        and attributeDisplayNames.LanguageID = entityDisplayNames.LanguageID

    --inner join dbo.LocalizedLabelView attributeLabels
    --  on attributeLabels.ObjectId = ?????
    --  and attributeLabels.LanguageID = …
Run Code Online (Sandbox Code Playgroud)

sql label reporting dynamics-crm

8
推荐指数
1
解决办法
3476
查看次数

如果隐藏了Visual Studio 2010中的属性窗口的说明框,该如何显示?

如果隐藏了Visual Studio 2010中的属性窗口的说明框,该如何显示?

缺少合适的盒子

例如,下图显示了说明框.它显示为"加载:每当用户加载表单时发生".

在此输入图像描述

visual-studio

8
推荐指数
1
解决办法
4850
查看次数