将Visual Studio 2012(VS2012)与SQL Server数据工具(SSDT)一起使用将数据库项目附加到StarTeam 2009 R2之后,我收到此错误(我以前在没有源代码管理的情况下使用此项目)。用于VS2012的StarTeam 2009 R2集成客户端已安装多周,但自从将解决方案放在源控制服务器上后,Visual Studio的性能已经大大降低(等待20-40秒以便上下文菜单弹出)现在这个错误对我没用。
SQL71518: The identity column '[Domain\Login].[temp#].[Id]' must be of data type int,
bigint, smallint, tinyint, decimal, or numeric with a scale of 0, and the column must
not be nullable.
据我所知,这段代码在语法上没有任何错误 - 尽管我可能同意很多其他问题......
CREATE TABLE [Domain\Login].[temp#]
(
[Code] VARCHAR (20) NOT NULL,
[Description] VARCHAR (255) NOT NULL,
[Id] INT IDENTITY(1, 1) NOT NULL
)
知道[Id]
列标有错误SQL71518的原因吗?该列的数据类型为int
且不可为空,这符合错误消息中提到的要求。
此代码继承自外部供应商,后者停止支持其产品。由于该产品对我公司来说很重要,因此他们安排获取源代码,以便我们自己支持。我对这个特别的项目比较陌生,整个团队都知道它有严重的缺陷;但我们没有收到升级代码和修复所有设计问题所需的预算 - 只是执行一些“次要”修改,这些修改应与上述错误无关。因此我忽略了这个错误,但它干扰了VS2012数据库模式比较实用程序。
修改1
VST的SSDT已经是11.1.50730.0
SQL Server Data Tools 11.1.50730.0
Microsoft SQL Server Data Tools
答案 0 :(得分:1)
该表有一条记录,因此我通过SQL Server Management Studio(SSMS)修改了表设计,使标识列成为列表中的第一列。使用SSMS,在修改期间保留了表格的数据。我不确定Visual Studio是否会保留表格 - 特别是因为错误导致架构比较实用程序失效。
CREATE TABLE [Domain\Login].[temp#] (
[commodity_id] INT IDENTITY (1, 1) NOT NULL,
[code] VARCHAR (20) NOT NULL,
[name] VARCHAR (255) NOT NULL
);
无论Visual Studio 2012和SSDT发生了什么,这似乎都纠正了错误 - 至少目前是这样。
答案 1 :(得分:0)
Visual Studio 2012附带的SSDT版本已经过时了,也许这就是为什么它适用于其他所有人?
获取更新版本的SSDT(2013年或2015年)并且它应该可以运行 - 您不必为可以获得Visual Studio express或社区附带的许可证付费。
编
答案 2 :(得分:0)
请尝试更新到Visual Studio 2012的最新版SSDT。可从此处下载:https://msdn.microsoft.com/library/mt204009.aspx
我尝试使用最新版本的SSDT重现问题,但我没有遇到这种情况。如果您在Visual Studio 2012中使用最新版本的SSDT时仍然遇到此问题,我建议您使用类别"开发者工具(SSDT,BIDS等)在https://connect.microsoft.com/SQLServer/feedback/CreateFeedback.aspx处提交Connect问题。 #34;