我对配置Visual Studio(2010)感兴趣,因此在部署C#CLR数据库项目时,它将把内容放入DBO之外的其他架构中。我知道我可以更新它手动创建的函数/过程/等...包装程序来实现此目的: CLR存储过程:如何设置模式/所有者?
但是,我真的很想以某种方式自动化该过程。如果有人知道,我将非常感谢您的回答!
我想解决的问题是根据构建配置构建不同的脚本.
假设我们有两个SQL Server实例:
当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
我有一个SSDT项目.发布新版本时,我也希望在数据库中发布/初始化一些数据.可以使用SSDT完成吗?
我正在尝试调试脚本任务,它给了我以下错误.
"在64位版本的Integration Services运行时下运行时,无法调试脚本任务".
我正在SSIS(Integration Services)中创建一个小包,在我的控制流程中,我有几个脚本任务和一些数据流将XML文件中的数据读入数据库.
我在内置Visual Studio编辑器的脚本任务中对C#代码进行了一些编辑,然后点击保存.文件名下的星号消失,表示文件已保存.我关闭了Visual Studio编辑器,保存了包,右键单击了脚本任务并选择了"执行任务".它运行没有错误,但它应该创建的XML文件永远不会出现,所以我再次在Visual Studio编辑器中打开脚本,而我的恐怖只有默认脚本(例如,只有主要方法,它只包含Dts.TaskResult = (int)ScriptResults.Success;声明)!
我一直无法找到该脚本任务中的代码,当我在文本编辑器中打开.dtsx文件时,我的代码消失了!但是,其他脚本任务中的代码就在那里.
我正在小心注意,所以在关闭编辑器并保存包之前,我没有办法错误地删除所有内容.
所以我的问题是:是否有其他人遇到过这个完全疯狂的错误,并且有办法恢复代码; 或者我只需咬紧牙关并从记忆中重新创建它?
我们很少在这些SSIS作业中使用任何大量的C#代码,因此我们没有任何集成的VCS.我一直在将代码复制到一个新文件并手动将其添加到我自己的Git仓库中,只是为了安全起见,但我还没有使用这个特定的代码.
我只需要重温我对Visual Studio中这样一个非常糟糕的错误的沮丧......
我已经将一个localdb添加到我的项目并尝试向其添加表.但我看不到菜单上的"添加表格"项,只有"刷新"和"属性"项.根据微软 SSDT即将预装VS2015,但没有选择添加新表.我错过了什么吗?

c# sql-server visual-studio sql-server-data-tools visual-studio-2015
在使用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
我的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) 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
我正在尝试创建一个新的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