看似没有理由,选择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) 我希望下面的比较没有显示出差异.根据MSDN (参见步骤7),应该有一个我找不到的SQLCMD变量函数.本文档适用于SQL 2010,但我使用的是2012.此页面上似乎没有可用的2012版本文档.
如何指定值以$(DatabaseName)使此比较起作用?我已经拥有了数据库项目设置中指定的值.

sql-server compare database-project database-schema sql-server-data-tools
从Schema Compare Options中,我取消选择所有对象类型:

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

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

sql-server schema database-project sql-server-2012 sql-server-data-tools
我将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
我正在使用visual studio 2013并尝试学习本地数据库操作.我使用VS和创建表创建了一个数据库.但我不能重命名表名.在任何地方都没有这样的选择,或者我看不到.我搜索但什么也没找到.
谁能告诉我如何使用'VISUAL STUDIO 2013 SSDT'重命名表格

我正在使用SSDT来保持2个数据库同步.
为此,我在Server1中有一个数据库,在Server2中有一个数据库,在我的项目中有一个Schema.
我总是在Server1数据库中进行更改,并在Server2数据库中应用这些更改.为此,我使用此工作流程:
这通常工作正常,但我上次重命名表中的列时发现了一个问题.
通常,如果我重命名表中的列,则更改将作为列重命名检测,因此,当我将Server1与Schema进行比较时,会正确检测列重命名,并且我可以安全地完成工作流程.
但是,我最后一次在Server1中的表中重命名列时,将其与Schema进行比较,而不是将更改检测为列重命名时,它已将检测到的更改为删除列(使用旧名称)并创建列(用新名字).显然,如果我在Server2数据库中应用这些更改,我将丢失重命名列中的所有数据.
在SSDT中有这种行为的原因吗?我可以指示SSDT了解这是一个列重命名吗?
我知道如何手动完成,但我宁愿在SSDT中避免这个问题,或者如果将来再次出现,我也可以解决它.
我有一个Visual Studio 2012项目,当尝试从命令行发布数据库时报告msbuild的错误:
Microsoft.Data.Tools.Schema.SqlTasks.targets(390,5):建立自己的错误:SQL Server数据工具和数据库运行时组件的不兼容版本安装在此计算机上.
我检查并安装了VS2012 SSDT的所有更新,一切都是最新的.
我已经安装了Visual Studio 2015,但缺少ssdt功能,如下所示
我在安装程序中检查了ssdt选项,我唯一做的就是将默认安装目录从c:/更改为d:/(不知道它是否会改变任何内容).当我使用典型安装时,ssdt安装正常,但它在c:/安装VS,我需要安装在"D:/"...
这是我的VS安装程序的屏幕截图
我怎样才能拥有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) 寻找解决方法:
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
我在 Visual Studio 2017 中有一个 SQL 项目,我正在使用 SSDT 从 SQL 数据库更新我的项目,如下所示:
通常,我用作源的数据库正在发生变化(通常以小且不相关的方式),当发生这种情况时,我无法更新我的项目,我得到“通常”“经验丰富”:
检测到源架构漂移。按比较刷新。
然而,就我而言,这个错误是合法的,我只是不在乎,无论如何我想更新我的目标。有没有办法忽略此消息并让 Visual Studio 更新我的项目,而不管架构漂移如何?
visual-studio schema-compare sql-server-data-tools visual-studio-2017