问题标签 [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.
sql-server - Comment Out Set Var Declarations True results in errors from MS Build
I am working to automate the scripting of an SSDT project so that it can be deployed later with alternative values for variables being passed in.
My publish profile looks like this.
In my test script I am then calling the following from powershell
I then get a number of errors which all relate to the variable values, examples below.
If however I set CommentOutSetVarDeclarations to false the script is generated without error. When performing the same task through SSDT no errors are raised.
Has anyone experienced similar behaviour?
sql-server - SSDT 中的 SQLCLR 可为空的 DATETIME2
我想编写一个接受 aDATETIME2
并返回 a的 SQLCLR UDF DATETIME2
。输入和输出应该允许 NULL。
我创建了一个 SQL Server 数据库项目 (SSDT),在其 SQLCLR 属性中将其配置为 VB 语言,然后添加以下文件Test.vb
:
从 SQL Server 2008 开始,http: //msdn.microsoft.com/en-us/library/ms131092 (v=SQL.100).aspx似乎支持以这种方式使用 nullable 。
但是,当我运行部署命令时,出现以下错误:
SQL46010: ) 附近的语法不正确。
这是因为它生成的 SQL 是:
我无法替代SqlDateTime
,因为我需要DATETIME2
.
sql-server - SSDT - 数据库参考
我在 Visual Studio 2012 中有一个数据库项目,需要通过链接服务器访问不是我设计的数据库。
我最初的方法是在 4 部分 [server].[database].[schema].[table] 中编写对数据库的访问脚本。这种方法会引发 SQL71562a 和 SQL71501 警告/错误。
通过研究,我注意到我需要做的是创建一个数据库引用。我的问题将围绕这个过程。
我认为正确的做法是从服务器上存在的其他供应商的数据库生成 DACPAC - 但我无法生成 DACPAC,因为它在 SSMS 中失败(我认为是由于加密)。
我的下一个想法是创建一个项目,该项目具有我需要从该数据库定义的架构,然后引用它(我还没有尝试过,因为起初猜测它可能是错误的方式)。
对此的任何帮助将不胜感激。提前致谢。
sql-server-data-tools - 数据层应用程序版本号存储在 Visual Studio 项目中的什么位置?
我有一个在 AssemblyInfo.cs 文件中填充版本号的实用程序。现在我需要实现一个功能来调整 Visual Studio 数据层应用程序 (DACPAC) 的版本号。
我发现如果我打开项目属性并单击数据层应用程序属性按钮,我可以手动调整数字。但是我找不到这个数字在项目文件中的存储位置,所以我不知道如何从我的实用程序自动更新它。
你知道吗,版本号存储在哪里?
visual-studio-2012 - 在 Visual Studio 2012 / 2013 中使用 SSIS BIDS
我想在 Visual Studio 2012 中使用 SSIS /BIDS 项目。
我同时安装了 Visual Studio 2010 和 Visual Studio 2012 以及 Microsoft SQL Server 2012。
首先安装了 VS 2010,然后是 MS SQL 2012,它让我的 BIDS 与 VS 2010 集成。
但是,我似乎找不到将 BIDS 与 VS 2012 集成的任何帮助。
我遇到了几个与此主题相关的 SO 问题,但它们都与 2010 年而不是 2012 年集成。
我知道使用 MS SQL 2012 我得到了一个 SQL Server 数据工具。这是否意味着 Visual Studio 2012 和 BIDS 无法集成?
解决方案 2012:
我不得不在这里更新解决方案,因为我收到的答案之一部分解决了这个问题。提供的答案确实解决了@user2141936 的问题,但我在更新现有实例时不断收到 BlockMixedArchitectureInstall 错误。
它无需创建新实例即可工作!
旁注:安装更新将我的发布数据库项目破坏到 2012 服务器上。您需要为它下载并安装一个 DACFramework 补丁。
解决方案 2013:
下载并安装http://www.microsoft.com/en-us/download/details.aspx?id=42313
sql-server - SSDT 未解析的引用
当该数据库具有 SQL Server 中的其他用户包含的角色时,如何正确使用 SSDT 中的数据库?
例如,假设我有一个名为“Shared”的数据库和 120 个其他数据库,它们的 SQL 登录帐户包含在“Shared”中的“LookupName”数据库角色中。
我不介意 SSDT 是否要确保存在“LookupName”数据库角色。但是,我不希望它尝试创建恰好担任该角色的所有 120 个用户!但是如果试图排除它们,我会得到其他错误。
“共享”数据库的结构不受角色中可能有多少用户的影响……这是 DBA 需要能够根据需要进行设置的内容。那么如何确保 SSDT 不将它们包括在比较中呢?
SSDT 比较有 110 多个复选框,用于包含、忽略等内容,但我无法找到我需要的内容。
有任何想法吗?
tfs - sqlproj post-build $(Configuration) 在 TFS 上不正确
我正在使用最新版本的 SSDT 编写 sqlproj,但使用 TFS 似乎无法正确评估构建后事件 $(Configuration) 宏。
我在项目中编写了以下构建后事件命令
在我使用 Visual Studio 的机器上,这可以正确评估为
“C:\Workspaces\MyProject\Dev\Src\MyProject.Database\MyProject.Database.Config\Debug\DeployCommand.cmd”
当我使用 IDE 在各种构建配置(发布、UAT 等)之间切换时,上述更改正确。然而,使用 TFS 2012 时它不正确(请参阅调试文件夹)评估为(即使我的构建配置未设置为调试)
“C:\Workspaces\MyProject\Dev\Src\MyProject.Database\MyProject.Database.Config\Debug\DeployCommand.cmd”
我有其他正确评估 $(Configuration) 宏的 C# 项目。
有人见过这个吗?
visual-studio-2012 - 默认为 Visual Studio 2012 数据库项目中的 T-SQL 窗格视图
在 Visual Studio 2012 中处理数据库项目时,VS 在添加或编辑表时默认使用“设计视图”窗格。虽然您可以在分屏模式下工作,但 T-SQL 窗格默认为底部窗格。
由于我更喜欢直接使用 T-SQL 而不是设计器,因此我不断切换以使 T-SQL 窗格成为最顶层的编辑器,以便使用对象。不幸的是,VS 不记得这个偏好,所以每次我使用表时,我都必须更改以使 T-SQL 窗格显示在顶部而不是设计器窗格下方。
我查看了 Tools --> Options 下是否有设置来控制此行为,但到目前为止,我一直无法找到这样做的设置。我也对该主题进行了一些谷歌搜索,但没有发现任何对这种特殊情况有帮助的东西。
这对我来说比其他任何事情都更令人烦恼,但是当我发现自己不断切换窗格时,我想知道是否有人知道在 VS 或注册表或其他一些配置文件中的设置,这些设置会迫使 VS 记住我的偏好还是默认为设计器窗格顶部的 T-SQL 窗格?
tfsbuild - 使用 TFS 构建触发时抑制 Powershell 中的 sqlpackage.exe 警告/错误
我有一个自动部署脚本,可以使用 dacpac 和 sqlpackage.exe、SSRS 报告和网站来部署数据库更改。
当我在命令行执行脚本时,sqlpackage 输出以下消息:
对象 [objectname] 已经存在于具有不同定义的数据库中,不会被更改。
控制台上的输出为黄色,表示这是一个警告,部署继续并按预期完成。
但是,当我通过 TFS 构建触发相同的脚本时,构建资源管理器中会记录相同的消息,但旁边会显示错误图标。部署仍在继续,运行自动化测试等,但构建状态更改为带有勾号和叉号的图标 - 表示构建成功完成,但其他任务失败。
有一个参数可以提供给sqlpackage,UnmodifiableObjectWarnings,它应该可以抑制这种警告,但是msdn上有一个帖子表明这个参数有一个错误,它不起作用。
我想知道在 Powershell 中我还能如何捕获和抑制这种警告,因为我不希望我的构建/部署仅仅因为这个警告而失败。但是我不能抑制调用 sqlpackage 的所有错误输出,因为可能存在其他完全有效的错误。
更新
我已尝试遵循此处的建议: https ://serverfault.com/questions/340711/redirect-stderr-to-variable-in-powershell 并尝试使用类似于以下代码:
但是,一旦 exe 返回警告消息,我的调用函数就会引发异常并处理 - 并且不会发生部署。
但是,如果我这样称呼它:
即没有变量$test 捕获输出,部署成功完成,但catch 仍然捕获相同的异常。为什么捕获变量中的输出会导致立即抛出异常,但是不捕获它仍然会导致它被捕获,但是在成功完成之后?
sql-server-data-tools - SSDT 的自定义模板
存储SQL Server Data Tools数据库项目的自定义项模板的正确文件夹名称是什么?
例如。它应该位于 C:\Users\accountname\Documents\Visual Studio 11\Templates\ItemTemplates 下的哪个子文件夹
SSDT 提供的模板似乎位于 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer 下
(对于 VS2010,将上述路径中的 '10' 替换为 '11')