标签: sql-server-data-tools

无法将类型“System.__ComObject”的 COM 对象转换为接口类型“Microsoft.SqlServer.Dts.Runtime.Wrapper.Sql2019.IDTSApplication160”

我将 SSIS 与 Visual Studio 2019 结合使用,在 SQL Server 2019 上创建和部署包。最初,当我的包在 SSDT 上运行时,我将其部署在 SSMS 集成服务器上,但没有输出。

因此,我在 Visual Studio 2019 中检查了:项目 -> 项目属性 -> 配置属性 -> 常规 -> 目标版本,其中设置为SQL Server 2022,所以我将其更改为SQL Server 2019

当我尝试在 Visual Studio 2019 中再次运行该包时,出现以下错误: Failed to load the package "Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.SqlServer.Dts.Runtime.Wrapper.Sql2019.IDTSApplication160'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{037FE238-12C5-4313-AE13-9E116E90ACEA}' failed due to …

sql-server ssis sql-server-data-tools

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

将Azure中的数据库架构的更改传播回Visual Studio?

我使用Azure门户创建了一个数据库.然后我下载了为我创建的初始项目Azure,并在Visual Studio中打开它.我设置了登录设置,选择将其注册为数据层应用程序,并通过Block Publish选项选择SSDT数据库漂移检测.然后,在更新IP地址防火墙以接受我的IP地址进行远程数据库管理后,我成功将数据库发布到Azure.

从Azure门户本身,我添加了一个表,并定义了一些列和索引.我的问题是,如何将我在Azure门户中所做的更改传播回我在Visual Studio 2012中的初始项目?虽然我是一名经验丰富的C#开发人员,但我是Azure平台的新手.如果这很重要,我正在使用Visual Studio 2012 Ultimate.

sql azure sql-server-data-tools

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

SSDT消失了!在VS 2013中

我已经开始喜欢SSDT到SQL Management工作室了.但突然间,当我需要它时,我SQL Server Object Explorer在视图菜单中找不到.

在此输入图像描述

不知道是谁拿走了它,我最近推出了visual-2的update-2.

在此输入图像描述

我无法找到适用于VS-2013的独立版SSDT

任何人都可以保存我重新安装Visual Studio :-(

visual-studio-2013 sql-server-data-tools

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

在 SSDT SQLPROJ 中有条件地构建部署后

我想在我的 SSDT 项目中有条件地构建部署后脚本,但我不明白该怎么做。因此,通常会构建部署后脚本,但我想要一种在进行调试构建时不构建或运行部署后脚本的方法。我正在从命令行运行构建,因此我可以传入属性,但是如何使用属性来不运行部署后脚本?

我看到的选项是 SQLCMD,或编辑 SQLPROJ 文件,或传入属性,但我找不到任何关于 SQLPROJ 文件可用属性和不可用属性的参考。

我想要有条件构建的文件位于此处:

<ItemGroup>
    <PostDeploy Include="PostDeploymentScripts\Script.PostDeployment1.sql" />
</ItemGroup>  
Run Code Online (Sandbox Code Playgroud)

我的调试构建块如下所示:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <OutputPath>bin\Debug\</OutputPath>
    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>  
Run Code Online (Sandbox Code Playgroud)

我的命令行如下所示:

msbuild $sqlprojFilePath /p:Configuration="Debug"
Run Code Online (Sandbox Code Playgroud)

msbuild msbuild-task sqlproj sql-server-data-tools

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

SSDT 项目中带有 UDF 和视图的数据库参考

遇到一个奇怪的问题。假设一个空解决方案中有两个数据库项目:Bart 和 Homer。巴特已被添加为荷马的数据库参考。

Bart项目定义了一个函数:

CREATE FUNCTION [dbo].[Message]()
RETURNS NVARCHAR(255)
AS
BEGIN
    RETURN 'I am a value returned from another database'
END
Run Code Online (Sandbox Code Playgroud)

然后Homer项目定义了一个表:

CREATE TABLE [dbo].[Messages]
(
     [Id] INT NOT NULL PRIMARY KEY
)
Run Code Online (Sandbox Code Playgroud)

和一个视图:

CREATE VIEW [dbo].[MessagesV]
    AS SELECT Id, Bart.dbo.Message() AS [Message]
    FROM dbo.Messages
Run Code Online (Sandbox Code Playgroud)

当尝试构建时,我收到以下错误:

Error   2   SQL71501: Computed Column: [dbo].[MessagesV].[Message] 
contains an unresolved reference to an object. Either the object does 
not exist or the reference is ambiguous because it could refer to any 
of the following objects: …
Run Code Online (Sandbox Code Playgroud)

sql-server-data-tools

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

我可以在不会最终发布的TSQL文件中写注释吗?

我正在使用我自己的代码生成器来生成T-SQL代码,使用一些标准.我希望输出代码显示用于生成代码的标准,但我希望将该信息保留在部署到服务器上.

这是一个例子:

CREATE PROC blabla
AS
BEGIN

    /*
    This code is the result of calling code generator X with the following criterias:

    Variable1 = 'My first variable value'
    Variable2 = 'My second variable value'
    */

    (Actual T-SQL code)

END
Run Code Online (Sandbox Code Playgroud)

基本上,我想知道SSDT中是否存在特殊语法来分隔不可编译的文本段.不在这里寻找纯粹的TSQL语法!

它存在吗?

另外需要注意:我知道我可以使用TSQL注释删除工具,但我在这里寻找更主动的解决方案.

t-sql sql-server visual-studio sql-server-data-tools

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

SSDT/SqlPackage 删除统计信息

在构建过程中,我们基于 SSDT .sqlproject 生成数据库的 dacpac 文件。此 dacpac 随后使用 sqlpackage 部署到生产环境。尽管使用 /p:DropStatisticsNotInSource=False 开关,sqlpackage 仍将删除 sqlproject 与生产数据库上次同步后添加的所有统计信息。

我们还可以使用发布配置文件和 SSDT 的生成脚本选项来重现此内容:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseName>hotel</TargetDatabaseName>
    <DeployScriptFileName>Database.sql</DeployScriptFileName>
    <TargetConnectionString>connectionstring</TargetConnectionString>
    <BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss>
    <DropObjectsNotInSource>True</DropObjectsNotInSource>
    <DoNotDropDatabaseRoles>True</DoNotDropDatabaseRoles>
    <DoNotDropDatabaseScopedCredentials>True</DoNotDropDatabaseScopedCredentials>
    <DoNotDropUsers>True</DoNotDropUsers>   
    <DoNotDropServerRoles>True</DoNotDropServerRoles>
    <DoNotDropSecurityPolicies>True</DoNotDropSecurityPolicies>
    <DoNotDropSearchPropertyLists>True</DoNotDropSearchPropertyLists>    
    <DoNotDropPermissions>True</DoNotDropPermissions>
    <DoNotDropPartitionSchemes>True</DoNotDropPartitionSchemes>
    <DoNotDropPartitionFunctions>True</DoNotDropPartitionFunctions>
    <DoNotDropExternalFileFormats>True</DoNotDropExternalFileFormats>
    <DoNotDropExternalTables>True</DoNotDropExternalTables>
    <DoNotDropErrorMessages>True</DoNotDropErrorMessages>
    <DoNotDropDefaults>False</DoNotDropDefaults>
    <ProfileVersionNumber>1</ProfileVersionNumber>
    <DropStatisticsNotInSource>False</DropStatisticsNotInSource>
    <ScriptRefreshModule>False</ScriptRefreshModule>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

我们如何强制 sqlpackage 不删除统计信息?

dacpac sqlpackage sql-server-data-tools

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

在 VS2017 中使用 MSBuild 构建 SSDT 项目失败

我正在尝试在我们的 windows server 2016 服务器上设置 .sqlproj SSDT 项目的持续集成。

为了做到这一点,我在服务器上安装了 VS2017 和 SSDT 工具以获取所需的工具。我还安装了 MS 构建工具 2017。

我目前遇到的问题是关于安装的 ms 构建工具和 ssdt 的版本不匹配。

我用来运行构建的命令如下:

C:\\Windows\Microsoft.NET\\Framework64\\v4.0.30319\\MSBuild.exe /p:VisualStudioVersion=15.0 /property:MSBuildExtensionsPath="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\MSBuild\\" /property:VsInstallRoot="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\" DPAP-SQL-Slim.sln

传递的两个开关用于设置 .sqlproj 文件在通过 Visual Studio 运行时期望找到的两个环境参数。这样做是因为 MSBuild 默认不提供它们。

我目前得到的错误如下:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(477,5): error MSB4062: The "SqlModelResolutionTask" task could not be loaded from the assembly C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\Common7\IDE\Extensions\Microsoft\SQLDB\Dac\140\Microsoft.Data.Tools.Schema.Tasks.Sql.dll. Could not load file or assembly 'Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its …

msbuild sql-server-data-tools visual-studio-2017

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

在 Visual Studio 2017 中创建新的 SQL Server 数据库

我正在使用 Visual Studio 2017。当我创建新的 SQL Server 数据库时,从数据连接中,一个弹出窗口打开并询问服务器名称。我刷新了但没有服务器名称显示。解决办法是什么?

在此处输入图片说明

.net sql sql-server sql-server-data-tools visual-studio-2017

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

SSDT:无法连接到主服务器或目标服务器“DB_NAME”。您必须在主服务器或目标服务器“DB_NAME”中拥有具有相同密码的用户

我将使用 Visual Studio 2019 通过 SSDT-DACPAC 自动化数据库部署,将部署更改的数据库是 SQL SERVER 2019,对于部署介质,我在部署启动时使用 Azure 管道和任务“SQL Server 数据库部署”抛出一个错误

  *** Could not deploy package.
      Unable to connect to master or target server 'DB_NAME'. You must have a user with the same 
      password in master or target server 'DB_NAME'.
Run Code Online (Sandbox Code Playgroud)

虽然我已经双重验证了数据库的用户和密码,但相同的密码将我连接到 ssms

请查找日志

2020-07-22T06:51:57.3001061Z ##[debug]Evaluating condition for step: 'Deploy using : dacpac'
2020-07-22T06:51:57.3004812Z ##[debug]Evaluating: succeeded()
2020-07-22T06:51:57.3005875Z ##[debug]Evaluating succeeded:
2020-07-22T06:51:57.3008135Z ##[debug]=> True
2020-07-22T06:51:57.3009350Z ##[debug]Result: True
2020-07-22T06:51:57.3010674Z ##[section]Starting: Deploy using : dacpac
2020-07-22T06:51:57.3715291Z ==============================================================================
2020-07-22T06:51:57.3716242Z Task         : SQL Server …
Run Code Online (Sandbox Code Playgroud)

dacpac sql-server-data-tools azure-devops sql-server-2019 ssdt-2019

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