2015-05-25 50 views
0

在嘗試從db解決方案構建項目時遇到奇怪的錯誤。VS 2013在T-SQL項目中的奇怪行爲

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]的引用。

但是在項目中只有一個這個名字的表。

等etc ...
10個項目中約有1,7k錯誤。

當我在Visual Studio中查看/構建時,發生在整個解決方案中。 SSMS接受代碼,併成功執行它,所以它似乎只是VS的問題。

發生了什麼,我該如何解決?

回答

0

關於第一誤差,

SQL71508:該模型已經具有具有相同名稱的元件dbo.partner2_log_status

意味着 「dbo.partner2_log_status」 被至少使用再一次在你的項目中。

爲了解決這個錯誤,需要檢查所有使用同名變量的表,並將其刪除。它可能在另一個約束內。

+0

沒有,我會更新問題來澄清它 – evictednoise

0

我知道這是一個老問題,但我一直在尋找和尋找一段時間。我在我的解決方案中有1個數據庫項目,我試圖用幾個腳本添加一個文件夾。突然間,該項目不會建立(即使我將這些腳本設置爲不構建)。我正在爲數據庫中的每個對象獲取原始問題中提到的SQL錯誤。每個表格,字段,約束,視圖等都在模型中報告。我刪除了我添加的文件夾和腳本,但它仍然沒有生成。重新啓動VS,重置我的git分支,以及任何我能想到的東西。仍然是同樣的錯誤。

我終於遇到了這個帖子:SQL Database Project: build different scripts depending on build configuration

它提到dbmdl緩存文件。我去了並刪除了我的項目目錄中的那個文件,下一個版本就像一個魅力。也許這會幫助別人得到這個錯誤,當沒有實際重複的對象定義。