尝试从db解决方案构建项目时遇到了奇怪的错误。
EG。我有一张桌子
CREATE TABLE [dbo].[partner2_log_status] (
[rec_id] INT IDENTITY (1, 1) NOT NULL,
[log_status] INT NULL,
[log_msg] NVARCHAR (4000) NULL,
[log_count] BIGINT CONSTRAINT [DF_partner2_log_status_log_count] DEFAULT ((0)) NOT NULL,
[sys_dt] DATETIME CONSTRAINT [DF_partner2_log_status_sys_dt] DEFAULT (getdate()) NOT NULL,
CONSTRAINT [PK_partner2_log_status] PRIMARY KEY CLUSTERED ([rec_id] ASC)
);
这就是我得到的:
SQL71508 :模型已经有一个名为dbo.partner2_log_status的元素。
SQL71501 :默认约束:[dbo]。[DF_partner2_log_status_log_count]有一个未解析的对列[dbo]的引用。[partner2_log_status]。[log_count]。
但是项目中只有一个具有此名称的表。
等等...... 10个项目中约1,7k个错误。当我在Visual Studio中查看/构建时,整个解决方案都会发生这种情况。 SSMS接受代码并成功执行,因此它似乎只是VS的问题。
发生了什么,我该如何解决?
答案 0 :(得分:0)
关于第一个错误,
SQL71508:该模型已有一个名称相同的元素dbo.partner2_log_status
表示" dbo.partner2_log_status"在您的项目中至少再次使用过一次。
为了解决这个错误,需要检查所有使用了同名变量的表,并将其删除。它可能在另一个约束内。
答案 1 :(得分:0)
我知道这是一个老问题,但我一直在寻找并寻找一段时间。我的解决方案中有一个数据库项目,我试图用几个脚本添加一个文件夹。突然之间,该项目将无法构建(即使我将这些脚本设置为不构建)。我收到了原始问题中提到的数据库中每个对象的SQL错误。每个表,字段,约束,视图等都已在模型中报告。我删除了我添加的文件夹和脚本,但它仍然没有构建。重新启动VS,重置我的git分支,以及我能想到的任何其他内容。还是一样的错误。
我终于遇到了这篇文章:SQL Database Project: build different scripts depending on build configuration
它提到了dbmdl缓存文件。我在项目目录中删除了该文件,下一个版本就像魅力一样。当没有实际复制定义的对象时,这可能会帮助其他人获得此错误。