Странное поведение VS 2013 в проекте T-SQL

Я испытываю странные ошибки при попытке построить проект из решения db.

НАПРИМЕР. у меня есть стол

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].

Но в проекте есть только одна таблица с таким именем.

и т.д. и т.п...
~1,7 тыс. ошибок в 10 проектах.

Это происходит во всем решении, когда я просматриваю/собираю в Visual Studio. SSMS принимает код и успешно его выполняет, так что похоже проблема исключительно с VS.

Что происходит, и как мне решить эту проблему?


person evictednoise    schedule 25.05.2015    source источник


Ответы (2)


О первой ошибке,

SQL71508: в модели уже есть элемент с таким же именем dbo.partner2_log_status.

означает, что "dbo.partner2_log_status" использовался в вашем проекте как минимум еще раз.

Чтобы решить эту ошибку, нужно будет проверить все таблицы, где использовалась переменная с таким именем, и удалить ее. Это может быть внутри другого ограничения.

person Soreges    schedule 06.03.2016

Я знаю, что это старый вопрос, но я искал и искал какое-то время. В моем решении был 1 проект базы данных, в который я пытался добавить папку с помощью нескольких сценариев. Внезапно проект не собирался (хотя я отключил сборку этих скриптов). Я получал ошибки SQL, упомянутые в исходном вопросе, для каждого объекта в базе данных. Каждая таблица, поле, ограничение, представление и т. д. уже сообщались в модели. Я удалил папку и скрипты, которые я добавил, но он все еще не собирался. Перезапустил VS, сбросил мою ветку git и все, что я мог придумать. Все те же ошибки.

Наконец-то я наткнулся на этот пост: Проект базы данных SQL: сборка различные скрипты в зависимости от конфигурации сборки

В нем упоминается файл кэша dbmdl. Я пошел и удалил этот файл в своем каталоге проекта, и следующая сборка работала как шарм. Возможно, это поможет кому-то еще получить эту ошибку, когда на самом деле не определены повторяющиеся объекты.

person user2517183    schedule 27.10.2017