标签: sql-server-data-tools

为什么选择SQL Schema Comparison的源会导致VS2012崩溃?

看似没有理由,选择SQL> Schema Compare> New Schema Comparison然后尝试"选择源"会导致Visual Studio 2012崩溃.(它已按预期工作了几个月).

除了尝试重新安装之外还有任何可能的修复方法吗?

注意:尝试在另一个Visual Studio实例中调试崩溃会显示异常

Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Security.Cryptography.CryptographicException
Stack:
   at Microsoft.VisualStudio.Data.DataProtection.DecryptString(System.String)
   at Microsoft.VisualStudio.Data.Tools.Design.Core.Common.SqlClient.SqlUtils.DecryptConnectionString(System.String)
   at Microsoft.VisualStudio.Data.Tools.Design.Core.Common.SqlClient.ServerExplorerConnection.get_DisplayNameWithDatabase()
   at Microsoft.VisualStudio.Data.Tools.Package.UI.DatabaseConnectionControl+ConnectionItem.Initialize(Microsoft.VisualStudio.Data.Tools.Design.Core.Common.SqlClient.ServerExplorerConnection)
   at Microsoft.VisualStudio.Data.Tools.Package.UI.DatabaseConnectionControl.PopulateDatabaseCombo()
   at Microsoft.VisualStudio.Data.Tools.Package.UI.DatabaseConnectionControl.DatabaseConnectionControl_Load(System.Object, System.EventArgs)
Run Code Online (Sandbox Code Playgroud)

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

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

SQLCMD变量和SSDT模式比较问题

我希望下面的比较没有显示出差异.根据MSDN (参见步骤7),应该有一个我找不到的SQLCMD变量函数.本文档适用于SQL 2010,但我使用的是2012.此页面上似乎没有可用的2012版本文档.

如何指定值以$(DatabaseName)使此比较起作用?我已经拥有了数据库项目设置中指定的值.

SQL架构比较

sql-server compare database-project database-schema sql-server-data-tools

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

在SSDT模式中比较如何忽略"模式"类型对象的差异

从Schema Compare Options中,我取消选择所有对象类型:

架构比较对象类型选项

它仍然显示我在Schema对象中的差异:

差异表显示模式对象

我滚动浏览了常规选项的大列表,其中没有一个似乎这样做:

常规选项

sql-server schema database-project sql-server-2012 sql-server-data-tools

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

SSDT SQL Server调试不会命中CLR断点

我将SQL Server数据工具补丁应用于Visual Studio 2012(Premium)并在C#中创建了SQL Server CLR用户定义的函数项目:

public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlInt32 Add42(SqlInt32 in_param)
    {
        SqlInt32 retval = in_param + 42;  // Set break point here.
        return retval;
    }
}
Run Code Online (Sandbox Code Playgroud)

在SQL Server对象资源管理器窗格中,我右键单击新发布的UDF并选择"执行函数..."我被提示提供示例输入值,然后Visual Studio将该函数(再次)发布到我的本地2012 SQL Server并生成如下所示的脚本:

DECLARE    @return_value Int

EXEC    @return_value = [dbo].[Add42] @in_param = 5

SELECT    @return_value as 'Return Value'

GO
Run Code Online (Sandbox Code Playgroud)

...并执行它,返回47的预期结果.

如果我现在在我的CLR UDF C#代码中的可执行行上放置一个断点,右键单击SQL Server对象资源管理器中的UDF函数,这次选择"调试函数...",我在生成的调试器中登陆SQL测试脚本.我可以将SQL语句单步执行到脚本的末尾,这会返回正确的结果,但是C#代码中的断点永远不会在C#调试器中到达.

该功能的术语似乎具有误导性.对于任何程序员来说,"调试"一个函数意味着逐步执行函数本身的代码中的可执行行.只需生成一个调用我的编译函数并获取结果的SQL测试工具,就是"测试"该函数.最多只有"调试"的是工具生成的测试本身,因为你不能"进入"CLR代码.唯一的选择是"跳过"它.

那么如何让Visual Studio实际调试,并在我的UDF C#代码中点击断点?

c# sqlclr user-defined-functions visual-studio-2012 sql-server-data-tools

10
推荐指数
2
解决办法
3458
查看次数

如何在Visual Studio中使用SSDT重命名表

我正在使用visual studio 2013并尝试学习本地数据库操作.我使用VS和创建表创建了一个数据库.但我不能重命名表名.在任何地方都没有这样的选择,或者我看不到.我搜索但什么也没找到.

谁能告诉我如何使用'VISUAL STUDIO 2013 SSDT'重命名表格

在此输入图像描述

sql visual-studio local-database sql-server-data-tools

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

而不是列重命名,项目执行列删除和列添加

我正在使用SSDT来保持2个数据库同步.

为此,我在Server1中有一个数据库,在Server2中有一个数据库,在我的项目中有一个Schema.

我总是在Server1数据库中进行更改,并在Server2数据库中应用这些更改.为此,我使用此工作流程:

  • 将Server1数据库与Schema进行比较,并使用Server1更改更新Schema
  • 将Schema与Server2数据库进行比较,并将Schema中的更改更新到数据库

这通常工作正常,但我上次重命名表中的列时发现了一个问题.

通常,如果我重命名表中的列,则更改将作为列重命名检测,因此,当我将Server1与Schema进行比较时,会正确检测列重命名,并且我可以安全地完成工作流程.

但是,我最后一次在Server1中的表中重命名列时,将其与Schema进行比较,而不是将更改检测为列重命名时,它已将检测到的更改为删除列(使用旧名称)并创建列(用新名字).显然,如果我在Server2数据库中应用这些更改,我将丢失重命名列中的所有数据.

在SSDT中有这种行为的原因吗?我可以指示SSDT了解这是一个列重命名吗?

我知道如何手动完成,但我宁愿在SSDT中避免这个问题,或者如果将来再次出现,我也可以解决它.

sql-server-2012 sql-server-data-tools

10
推荐指数
2
解决办法
3003
查看次数

构建错误:此计算机上安装了不兼容的SQL Server数据工具和数据库运行时组件版本

我有一个Visual Studio 2012项目,当尝试从命令行发布数据库时报告msbuild的错误:

Microsoft.Data.Tools.Schema.SqlTask​​s.targets(390,5):建立自己的错误:SQL Server数据工具和数据库运行时组件的不兼容版本安装在此计算机上.

我检查并安装了VS2012 SSDT的所有更新,一切都是最新的.

sql-server-data-tools

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

SSDT(SQL Server数据工具)缺少Visual Studio 2015

我已经安装了Visual Studio 2015,但缺少ssdt功能,如下所示

缺少SSDT

我在安装程序中检查了ssdt选项,我唯一做的就是将默认安装目录从c:/更改为d:/(不知道它是否会改变任何内容).当我使用典型安装时,ssdt安装正常,但它在c:/安装VS,我需要安装在"D:/"...

这是我的VS安装程序的屏幕截图

Visual Studio安装程序

我怎样才能拥有SSDT功能?


编辑:为了解决我的问题,我在这个链接的第三步的第一步,这是:

Download the appropriate version of SSDTSetup.exe for your chosen language from the table below (use the “save” option in your browser, rather than “run”):
Portuguese (Brazil) http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x416
Chinese (PRC)   http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x804
German  http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x407
English (United States) http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x409
Spanish http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x40a
French  http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x40c
Italian http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x410
Japanese    http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x411
Korean  http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x412
Russian http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x419
Chinese (Taiwan)    http://go.microsoft.com/fwlink/?LinkID=619232&clcid=0x404
Run Code Online (Sandbox Code Playgroud)

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

9
推荐指数
2
解决办法
7万
查看次数

避免系统版本表中的模式不匹配

寻找解决方法:

Error: SQL71609: System-versioned current and history tables do not have matching schemes. Mismatched column: 'XXXX'.
Run Code Online (Sandbox Code Playgroud)

尝试在SSDT中为Visual Studio 2015使用SQL 2016系统版本(时间)表时.

我已经定义了一个基本表:

CREATE TABLE [dbo].[Example] (
    [ExampleId] INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    [ExampleColumn] VARCHAR(50) NOT NULL,
    [SysStartTime] datetime2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
    [SysEndTime] datetime2 GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
    PERIOD FOR SYSTEM_TIME (SysStartTime,SysEndTime)
)
WITH (SYSTEM_VERSIONING=ON(HISTORY_TABLE=[history].[Example]))
GO
Run Code Online (Sandbox Code Playgroud)

(假设[history]在SSDT中正确创建了模式).这是第一次建立良好.

如果我以后做出改变:

CREATE TABLE [dbo].[Example] (
    [ExampleId] INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    [ExampleColumn] …
Run Code Online (Sandbox Code Playgroud)

sql-server temporal sql-server-data-tools visual-studio-2015 sql-server-2016

9
推荐指数
2
解决办法
2129
查看次数

忽略“检测到源架构漂移”错误,继续更新

我在 Visual Studio 2017 中有一个 SQL 项目,我正在使用 SSDT 从 SQL 数据库更新我的项目,如下所示:

在此输入图像描述

通常,我用作源的数据库正在发生变化(通常以小且不相关的方式),当发生这种情况时,我无法更新我的项目,我得到“通常”“经验丰富”:

检测到源架构漂移。按比较刷新。

然而,就我而言,这个错误是合法的,我只是不在乎,无论如何我想更新我的目标。有没有办法忽略此消息并让 Visual Studio 更新我的项目,而不管架构漂移如何?

visual-studio schema-compare sql-server-data-tools visual-studio-2017

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