标签: sql-server-data-tools

部署期间CLR存储过程的架构

我对配置Visual Studio(2010)感兴趣,因此在部署C#CLR数据库项目时,它将把内容放入DBO之外的其他架构中。我知道我可以更新它手动创建的函数/过程/等...包装程序来实现此目的: CLR存储过程:如何设置模式/所有者?

但是,我真的很想以某种方式自动化该过程。如果有人知道,我将非常感谢您的回答!

sql-server sqlclr sql-server-data-tools

5
推荐指数
1
解决办法
2273
查看次数

SQL数据库项目:根据构建配置构建不同的脚本

我想解决的问题是根据构建配置构建不同的脚本.

假设我们有两个SQL Server实例:

  • 已连接链接服务器的企业版
  • 用于离线开发和单元测试的LocalDb版本

当LocalDB使用本地表替换这些视图时,企业版具有链接服务器的视图.

这些链接服务器视图和本地表具有相同的名称和字段集.因此默认情况下它们不包含在构建中(Build Action = None).相反,它们包含在项目文件的BeforeBuild Target中.

<Target Name="BeforeBuild">

    <ItemGroup Condition=" '$(Configuration)' == 'LocalDb'">
        <Build Include="Local_Tables\*.sql" />
    </ItemGroup> 

    <ItemGroup Condition=" '$(Configuration)' != 'LocalDb' ">
        <Build Include="Linked_Server_Views\*.sql" />
    </ItemGroup>

</Target>
Run Code Online (Sandbox Code Playgroud)

但问题是Visual Studio缓存数据库模型,如果我们首先为LocalDb构建项目,然后尝试构建企业配置项目 - Visual Studio输出错误:

错误:SQL71508:模型已经有一个具有相同名称的元素

如果要关闭并打开解决方案或卸载项目和重新加载项目,Visual Studio将重新创建dbmdl文件,并且正在构建企业配置而不会出现错误.

所以我的假设是,如果我刷新dbmdl缓存,我将得到平滑的构​​建,没有错误.


当您打开或在Visual Studio 2012重装SQL Server数据库的项目,它将创建一个具有扩展名的文件dbmdl,这是作为描述的反序列化和缓存数据库模型在这里.

在dbmdl文件重新创建的那一刻,Visual Studio输出以下内容:

Deserializing the project state for project 'MyProject.sqlproj'...
Detecting file changes for project 'MyProject.sqlproj'...
Deserialization has been completed for project 'MyProject.sqlproj'.
Run Code Online (Sandbox Code Playgroud)

如何在没有项目重新加载且不更改项目xml文件的情况下强制Visual Studio刷新dbmdl缓存?

有没有办法刷新dbmdl缓存,将命令放入项目xml文件的BeforeBuild或AfterBuild目标?

或者问题的整个方法是错误的,还有另一种方法可以根据构建配置构建不同的脚本?

msbuild database-project msbuild-target visual-studio-2012 sql-server-data-tools

5
推荐指数
1
解决办法
4510
查看次数

使用SSDT发布数据?

我有一个SSDT项目.发布新版本时,我也希望在数据库中发布/初始化一些数据.可以使用SSDT完成吗?

sql-server-data-tools

5
推荐指数
1
解决办法
956
查看次数

在64位版本的Integration Services运行时下运行时无法调试脚本任务

我正在尝试调试脚本任务,它给了我以下错误.

"在64位版本的Integration Services运行时下运行时,无法调试脚本任务".

ssis sql-server-data-tools

5
推荐指数
1
解决办法
4798
查看次数

恢复SQL Server数据工具(Visual Studio)删除的代码

我正在SSIS(Integration Services)中创建一个小包,在我的控制流程中,我有几个脚本任务和一些数据流将XML文件中的数据读入数据库.

我在内置Visual Studio编辑器的脚本任务中对C#代码进行了一些编辑,然后点击保存.文件名下的星号消失,表示文件已保存.我关闭了Visual Studio编辑器,保存了包,右键单击了脚本任务并选择了"执行任务".它运行没有错误,但它应该创建的XML文件永远不会出现,所以我再次在Visual Studio编辑器中打开脚本,而我的恐怖只有默认脚本(例如,只有主要方法,它只包含Dts.TaskResult = (int)ScriptResults.Success;声明)!

我一直无法找到该脚本任务中的代码,当我在文本编辑器中打开.dtsx文件时,我的代码消失了!但是,其他脚本任务中的代码就在那里.

我正在小心注意,所以在关闭编辑器并保存包之前,我没有办法错误地删除所有内容.

所以我的问题是:是否有其他人遇到过这个完全疯狂的错误,并且有办法恢复代码; 或者我只需咬紧牙关并从记忆中重新创建它?

我们很少在这些SSIS作业中使用任何大量的C#代码,因此我们没有任何集成的VCS.我一直在将代码复制到一个新文件并手动将其添加到我自己的Git仓库中,只是为了安全起见,但我还没有使用这个特定的代码.

我只需要重温我对Visual Studio中这样一个非常糟糕的错误的沮丧......

c# sql-server ssis visual-studio-2010 sql-server-data-tools

5
推荐指数
1
解决办法
1123
查看次数

Visual Studio 2015 SQL Server数据工具缺少"添加表"选项

我已经将一个localdb添加到我的项目并尝试向其添加表.但我看不到菜单上的"添加表格"项,只有"刷新"和"属性"项.根据微软 SSDT即将预装VS2015,但没有选择添加新表.我错过了什么吗?

在此输入图像描述

c# sql-server visual-studio sql-server-data-tools visual-studio-2015

5
推荐指数
2
解决办法
1万
查看次数

为什么SSDT Schema Compare在DefaultExpressionScript中显示出差异?

在使用SSDT将数据库实例与VS2010中的数据库项目进行比较时,它显示了其中一个存储过程的差异.Store Procedure DDL脚本完全相同,但是当我在Store Procedure下展开Properties文件时,它显示了DefaultExpressionScript的不同之处.

源SP在DefaultExpresionScript中显示:

DefaultExpressionScript = at
Run Code Online (Sandbox Code Playgroud)

目的地SP有这个:

DefaultExpressionScript = -1
Run Code Online (Sandbox Code Playgroud)

我没有看到我可以在哪里更改这个在我的数据库项目中没有名为DefaultExpressionScript的对象.我应该在哪里修理这个?

sql visual-studio sql-server-2008-r2 ssdt-bi sql-server-data-tools

5
推荐指数
2
解决办法
1786
查看次数

SQL Server时态表的SSDT代码分析错误

我的SQL Server数据库项目中有许多临时表。今天,我将我的SSDT升级到最新版本,并且在构建项目时遇到了以下临时表错误。例如,我有一个时态表UseCase,该表具有一个称为UseCase_HISTORY的历史表。

它看起来像一个代码分析问题。如果在构建时禁用代码分析,则构建时将不会出现错误。

我正在使用VS2015和VS2017。两者都有相同的问题。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(1292,5): Error:  SQL72039: The substring is out of the bounds for script MSSQL::dbo.UseCase_HISTORY.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(1292,5): Error:  MSB4018: The "SqlStaticCodeAnalysisTask" task failed unexpectedly.
Microsoft.Data.Tools.Schema.SchemaModel.ScriptCacheException: The substring is out of the bounds for script MSSQL::dbo.UseCase_HISTORY.
   at Microsoft.Data.Tools.Schema.SchemaModel.ScriptCache.CheckAndGetSubstring(String cacheIdentifier, Int32 startOffset, Int32 length, CachedString value)
   at Microsoft.Data.Tools.Schema.SchemaModel.ScriptCache.GetScript(String cacheIdentifier, Int32 startOffset, Int32 length)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlSourceInformation.ParseSource()
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlSourceInformation.get_ScriptDom()
   at Microsoft.SqlServer.Dac.Model.SqlSchemaModelObjectService.GetOriginalSourceFragment(TSqlObject tSqlObject)
   at Microsoft.SqlServer.Dac.TSqlModelUtils.TryGetFragmentForAnalysis(TSqlObject tSqlObject, TSqlFragment& fragment)
   at Microsoft.SqlServer.Dac.CodeAnalysis.SqlRuleExecutionContext.get_ScriptFragment()
   at Microsoft.SqlServer.Dac.CodeAnalysis.Rules.Design.DataTypeCompatibilityRule.Analyze(SqlRuleExecutionContext context)
   at Microsoft.SqlServer.Dac.CodeAnalysis.Engine.RuleEngine.TryExecuteSingleRule(RuleDescriptor ruleDescriptor, …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-data-tools

5
推荐指数
1
解决办法
680
查看次数

无法将SQL Server数据工具包中的SSRS或SSIS包安装到Visual Studio 2017上

SSDT是通过Visual Studio 2017安装程序安装的,但不包括Analysis Services,Reporting Services或Integration Services工具.我下载了最新的SQL Server数据工具安装程序并尝试安装,但只安装了Analysis Services.SSRS和SSIS都失败了.两者都给:

"未知错误0x80131509).

我已经尝试了几次,重新启动,重新下载,没有任何工作.如果我卸载SSDT,VS安装程序将删除许多其他组件,所以如果没有看到有人有解决方案,不想这样做.

救命?!

谢谢!

日志文件的结尾显示:

Error 0x80131509: Process returned error: 0x80131509
Error 0x80131509: Failed to execute EXE package.
Error 0x80131509: Failed to configure per-machine EXE package.
MainViewModel.OnPackageAction: Install Completed for package SQL Server Reporting Services (id: Microsoft.DataTools.ReportingServices)
Applied execute package: Microsoft.DataTools.ReportingServices, result: 0x80131509, restart: None
Error 0x80131509: Failed to execute EXE package.
Removed package dependency provider: Microsoft.DataTools.ReportingServices, package: Microsoft.DataTools.ReportingServices
Removing cached package: Microsoft.DataTools.ReportingServices, from path: C:\ProgramData\Package Cache\9864EE5369359DB622D0234B6C6B7640B949140C\
Removed dependency: {f55a890f-6c82-4455-9bb5-2a902cdb7d87} on package …
Run Code Online (Sandbox Code Playgroud)

install ssis reporting-services sql-server-data-tools visual-studio-2017

5
推荐指数
1
解决办法
2461
查看次数

无法将目标服务器版本设置为Integration Services Project的SQL Server 2012

我正在尝试创建一个新的Integration Services项目。默认情况下,该项目的目标是SQL Server2017。我需要使用SQL Server 2012,但该选项未显示。我有一些已经设定为2012年的现有项目,但是现在我已经做不了了。

在此处输入图片说明

为什么没有显示SQL Server 2012选项的任何线索?是兼容性问题吗?

我正在使用Visual Studio Community 2017 v15.9.7和SSDT v15.1.61901.24070。

sql-server ssis visual-studio ssis-2012 sql-server-data-tools

5
推荐指数
0
解决办法
242
查看次数