问题标签 [sql-server-data-tools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2012 - 在 Visual Studio 2012 中格式化 SQL 脚本
通常我们可以在 Visual Studio 中使用 ++ 快捷键格式化代码Ctrl或K标记D。
我们如何使用快捷键格式化 SQL 脚本代码,如存储过程或视图或其他东西?
注意:我将 SSDT 与 VS2012 一起使用,我可以在其中编辑数据库的脚本,但找不到格式选项。
visual-studio-2012 - MSBuild 和 SQL Server 数据库项目:将部署和发布目标绑定到构建配置
Visual Studio 2012。SQL Server 数据库项目。
解决方案中创建了四个构建配置:Debug、DevDb、TestDb、LocalDb。
在项目中创建了三个发布配置文件:DevDb.publish.xml、TestDb.publish.xml、LocalDb.publish.xml
按下 F5 按钮(!)我想:
- 如果 构建配置为Debug ,则使用项目属性中的连接字符串部署项目。
- 如果构建配置为 DevDb、TestDb或LocalDb ,则使用相应发布配置文件中的连接字符串发布项目。
为此,我编辑项目 (.sqlproj) xml,尝试捕获对 Deploy 目标的调用并用自定义行为替换标准 Deploy 目标:
第二条语句运行良好,我将部署到正确的目的地。
问题出在第一条语句上——它产生了循环依赖。
错误 MSB4006:在涉及目标“部署”的目标依赖图中存在循环依赖。
我的问题是:如何与标准目标相交(捕获和替换)以及是否需要再次调用标准目标?
还是我想重新发明轮子,还有另一种方法可以做我想做的事?(我想要的内容在上面的“按下 F5 按钮”下进行了描述:)
visual-studio-2012 - SQL 数据库项目:根据构建配置构建不同的脚本
我要解决的问题是根据构建配置构建不同的脚本。
假设我们有两个 SQL Server 实例:
- 带有连接的链接服务器的企业版
- 用于离线开发和单元测试的 LocalDb 版本
当 LocalDB 用本地表替换这些视图时,企业版具有链接服务器的视图。
那些链接服务器视图和本地表具有相同的名称和字段集。因此默认情况下它们不包含在构建中(构建操作 = 无)。相反,它们包含在项目文件的 BeforeBuild Target 中的构建中。
但问题是 Visual Studio 缓存了 DB 模型,如果我们首先为 LocalDb 构建项目,然后尝试为企业配置构建项目 - Visual Studio 输出错误:
错误:SQL71508:模型已经有一个同名的元素
如果要关闭并打开解决方案或卸载项目并重新加载项目,Visual Studio 将重新创建 dbmdl 文件,并且正在构建企业配置而不会出现错误。
所以我的假设是如果我刷新 dbmdl 缓存,我会顺利构建而不会出错。
当您在 Visual Studio 2012 中打开或重新加载 SQL Server 数据库项目时,它会创建一个扩展名为dbmdl的文件,这是一个反序列化和缓存的数据库模型,如此处所述。
在重新创建 dbmdl 文件时,Visual Studio 输出以下内容:
如何强制 Visual Studio 在不重新加载项目且不更改项目 xml 文件的情况下刷新 dbmdl 缓存?
有没有办法刷新 dbmdl 缓存,将命令放入项目 xml 文件的 BeforeBuild 或 AfterBuild 目标?
或者解决问题的整个方法是错误的,还有另一种方法可以根据构建配置构建不同的脚本?
visual-studio-2010 - Visual Studio 2010 是否为已安装 Microsoft SQL Server Data Tools 的服务器提供任何增强功能或附加功能?
除了 SQL Server 2012 之外,安装的 Microsoft SQL Server Data Tools、SSDT 还提供了一个 Visual Studio shell。我很好奇安装完整版的 Visual Studio 2010 是否提供任何增强或附加功能。
sql-server - 在哪里可以找到 SQL Server ScriptDom 解析器生成的 T-SQL Dom?
我正在使用Microsoft.SqlServer.TransactSql.ScriptDom库。我找到了导航可以从 TSqlFragment 获得的所有令牌的方法:
我还找到了 TSqlFragmentVisitor 类,所以我想 ScriptDom 库从可以导航的 TSqlFragment 生成 T-SQL DOM。但是我找不到这样做的方法...
你能帮助我吗?谢谢!
sql-server-data-tools - SSIS 2012 + 脚本组件 + 自定义 .dll 参考
使用 SSDT (Visual Studio 2010)
我使用 Target Framework .net 4.0 在 C# (Visual Studio 2010) 中获得了自定义 dll 的代码。当我从构建它的位置引用我的 SSIS 脚本组件中的上述 dll 时,尽管脚本组件目标框架设置为 .net 4.0,但它会引发如下错误
TITLE:包验证错误
包验证错误
附加信息:
数据流任务 [脚本组件 [96]] 出错:System.Reflection.TargetInvocationException:调用目标已引发异常。---> System.IO.FileNotFoundException:无法加载文件或程序集“转换,版本=1.0.0.0,文化=中性,PublicKeyToken=61d0ad25bd7b3c3c”或其依赖项之一。该系统找不到指定的文件。在 ScriptMain..ctor() --- 内部异常堆栈跟踪结束 --- 在 System.RuntimeType.CreateInstanceSlow 的 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck) (布尔 publicOnly、布尔 skipCheckThis、布尔填充缓存、StackCrawlMark 和 stackMark)在 System.RuntimeType。Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.CreateUserScriptInstance() 处的 SqlServer.Dts.Pipeline.VSTAComponentScriptingEngine.GetScriptEntryPoint(String versionGuid) 数据流任务 [脚本组件 [96]] 出错:System.Reflection.TargetInvocationException:已引发异常通过调用的目标。---> System.IO.FileNotFoundException:无法加载文件或程序集“转换,版本=1.0.0.0,文化=中性,PublicKeyToken=61d0ad25bd7b3c3c”或其依赖项之一。该系统找不到指定的文件。在 ScriptMain..ctor() --- 内部异常堆栈跟踪结束 --- 在 System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) 在系统。Microsoft.SqlServer.Dts.Pipeline.VSTAComponentScriptingEngine.GetScriptEntryPoint(String versionGuid) 在 Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.CreateUserScriptInstance( ) 数据流任务 [脚本组件 [96]] 出错:System.Reflection.TargetInvocationException:调用目标已抛出异常。---> System.IO.FileNotFoundException:无法加载文件或程序集“转换,版本=1.0.0.0,文化=中性,PublicKeyToken=61d0ad25bd7b3c3c”或其依赖项之一。该系统找不到指定的文件。在 ScriptMain..ctor() --- 内部异常堆栈跟踪结束 --- 在 System.RuntimeTypeHandle。
数据流任务 [SSIS.Pipeline] 出错:一个或多个组件验证失败。
数据流任务出错:任务验证期间出现错误。
(Microsoft.DataTransformationServices.VsIntegration)
纽扣:
好的
我究竟做错了什么?
sql-server - SQL Server Data Tools (SSDT) - 在部署时确定数据类型?
有没有人知道在部署时使用 SSDT / dacpac 部署来确定列的数据类型的技术,具体取决于目标 SQL Server 实例上可用的功能?具体例子:
在这种情况下,如果没有为 SQL Server 实例启用 FILESTREAM,我希望能够自动回退到传统的 VARBINARY(MAX) blob 而不是 FILESTREAM。
visual-studio-2012 - SQL 工具泄漏到 Visual Studio 2012 工具中,让我感到困惑
我通常在一个屏幕上有 SSMS,在另一个屏幕上有 VS 2012 .. 但是随着 SQL 工具的开发被集成到 VS 2012 中,功能似乎重叠了.. 在我看来,我可以在 VS 中完成所有常见任务2012 年,除了恢复我需要 SSMS 的备份。
还有 Sql Server Data Tools .. 我认为是 IDE + SSIS/Reports/SSAS 吗?然后他们删除了数据比较工具,这是一个谜。
所以我的主要问题是创建 .NET Web 应用程序的最有效方法是什么。使用 SSMS 和 VS 2012 ......或者只使用 VS 2012 sql 数据工具,这样我就可以将 VS2012 用于大多数应该更有效率的东西?
重叠让我感到困惑,我希望以最有效的方式进行设置。
ssas - 将特定的外键字段指定为 SSAS 数据源中两个表之间的链接
我对 SQL Server Analysis Services 很陌生,现在尝试构建我的第一个多维数据集(第一个除了 Adventure Works 教程)
问题是当存在多个选项(指向同一个第二个表的几个键)时,如何指定表中的特定字段作为到另一个表的链接。
在我的数据源中,我有一个部门表:(省略了不相关的字段)
和这样的纪律表:
Discipline 表中的两个外键都指向 Department 表,并且这两个约束都在 DB 中指定。它们的含义仍然完全不同。
在 SQL Server Data Tools 中构建 Discipline 维度时,我想指定哪些外键应用作维度(或整个维度)中特定层次结构的级别之间的链接,但我没有找到一种明确地做到这一点的方法。
有趣的是,SSDT(或 SSAS)恰好使用我现在想要的列(department_of_key
)来关联级别。尽管如此,将来我很可能想在单独的维度(或同一维度的新层次结构)中使用第二个键,因此最好知道如何控制该过程。
虽然,我认为这个问题很简单,但到目前为止我还没有找到任何解决方案。我也有一种感觉,在专门针对 SSAS 的教程中有一些相关的东西,但我在那里找不到任何帮助。
感谢您的任何回复!
(我也将不胜感激有关更好的问题标题的任何建议=))
sql - 如何使用 SSDT 和 Visual Studio 2012 数据库项目正确管理数据库部署?
我正处于研究阶段,试图在现有的小型项目中采用 2012 年数据库项目。我是 C# 开发人员,而不是 DBA,所以我对最佳实践不是特别精通。我已经搜索 google 和 stackoverflow 几个小时了,但我仍然不知道如何正确处理一些关键部署场景。
1) 在几个开发周期的过程中,我如何管理我的数据库的多个版本?如果我的数据库 v3 上有一个客户端,并且我想将它们升级到 v8,我该如何管理?我们目前为我们产品的每个版本管理手工制作的架构和数据迁移脚本。我们是否仍需要单独执行此操作,或者新范式中是否有某些东西支持或替代它?
2)如果模式以需要移动数据的方式发生变化,处理这个问题的最佳方法是什么?我假设在 Pre-Deployment 脚本中进行了一些工作以保留数据,然后 Post-Deploy 脚本将其放回正确的位置。是这样还是有更好的方法?
3) 任何其他关于如何最好地使用这些新技术的建议或指导也非常感谢!
更新:自从我最初提出这个问题以来,我对这个问题的理解有所增加,虽然我想出了一个可行的解决方案,但这并不是我所希望的解决方案。这是我的问题的改写:
我遇到的问题纯粹是与数据相关的。如果我的应用程序版本 1 上有一个客户端,并且我想将它们升级到我的应用程序版本 5,那么如果他们的数据库没有数据,我这样做不会有任何问题。我只是让 SSDT 智能地比较模式并一次性迁移数据库。不幸的是,客户有数据,所以事情没那么简单。从我的应用程序的版本 1 到版本 2 到版本 3(等等)的架构更改都会影响数据。我目前管理数据的策略要求我为每个版本升级(1 到 2、2 到 3 等)维护一个脚本。这使我无法从应用程序的版本 1 直接转到版本 5,因为我没有数据迁移脚本可以直接转到那里。为每个客户端创建自定义升级脚本或管理升级脚本以从每个版本到每个更高版本的前景呈指数级难以管理。我所希望的是,SSDT 启用了某种策略,使管理事物的数据方面变得更容易,甚至可能与事物的模式方面一样容易。我最近在 SSDT 的经历并没有让我对这种策略存在任何希望,但我很想找出不同的答案。