#sql #sql-server #visual-studio
Вопрос:
У меня есть SQL VS
проект с одним Customers.PreDeployment1.sql
файлом:
DROP TABLE Customers
Мой вопрос в том, почему после удаления Customers.sql
( Build
действие) не выполняется (таблица не создается sql server
)?
CREATE TABLE [dbo].[Customers]
(
[Id] INT NOT NULL PRIMARY KEY,
[First_Name] NCHAR(10) NULL,
[Last_Name] NCHAR(10) NULL
)
Я не мог найти этому никакого объяснения… может быть, потому, что он рассматривал это как один сеанс?
Комментарии:
1. Просмотрите свой сценарий развертывания.
Ответ №1:
Потому что удаление происходит только после того, как visual studio выполнит сравнение/сравнение и создаст сценарий.
Таким образом, когда выполняется различие (и создается сценарий развертывания), таблица customers все еще находится в базе данных, VS затем добавляет предварительное развертывание и последующее развертывание в сценарий изменений, а затем запускает его.
Я уверен, что для такого поведения есть веская причина, но я ее так и не нашел. Есть несколько способов обойти проблему, но неясно, чего вы пытаетесь достичь, удаляя таблицу в процессе предварительного развертывания?
Комментарии:
1. Это была демонстрация, которую я дал по поводу того, что этот вопрос был поднят во время сессии. Мне это показалось очень интересным 🙂