Есть ли конструктор таблиц для проекта базы данных VS2010?

Я что-то упустил? Кажется, что единственные варианты создания новой таблицы в проекте базы данных в VS2010:

Создайте объект таблицы как файл, затем создайте все ограничения (значения по умолчанию) как отдельные файлы, затем создайте каждый индекс как отдельный файл, а первичный ключ как отдельный файл и так далее ...

Or

Создайте всю схему таблицы с помощью конструктора таблиц в SSMS, а затем используйте инструмент сравнения схем, чтобы создать единый монолитный файл операторов SQL для каждого элемента таблицы и скопировать каждый блок кода во вновь созданный файл в VS.

Этот вопрос был задан 2 года назад, и я надеюсь, что ответ изменился. Скажите, пожалуйста, в VS2010 есть скрытый конструктор таблиц для проекта базы данных, который я только что пропустил.


person Richard B    schedule 31.08.2010    source источник


Ответы (5)


Я почти уверен, что его нет!

Могу я спросить, зачем вам нужен дизайнер таблиц вместо создания и изменения файлов сценариев создания для ваших новых объектов? Есть ли что-то такое, чего бы это не дал вам дизайнер?

person David Atkinson    schedule 04.09.2010
comment
@David, в этом случае я предпочитаю дизайнера по той же причине, по которой я использую другие инструменты кодирования (например, VS), а не кодирование в блокноте. Удобство, повышенная производительность и надежность. Надеюсь, вы согласитесь с тем, что какой-то код настолько похож на котельную, что он генерируется и поддерживается быстрее и надежнее с помощью инструмента, чем человека. Находясь под прицелом, я предпочитаю тратить свое время и мыслить на бизнес-логику, чем ошеломляющие утверждения ALTER TABLE xxx ADD CONSTRAINT xxx бла, бла бла. - person Richard B; 05.09.2010
comment
@David, посмотрев ваш профиль и увидев, что вы работаете в Red Gate, я мог бы добавить, что другие инструменты кодирования, которые я использую по тем же причинам, включают: Red Gate SQL Prompt, Refactor, Data Gen, Docs и ранее Packager. Вы, в первую очередь, должны понять мое желание дизайнеров столов. - person Richard B; 05.09.2010
comment
Вся суть автономной скриптовой модели VS2010 заключается в том, что она не требует от вас формирования трудно запоминающихся операторов ALTER для изменения ваших объектов. Вы определяете сценарии CREATE (из начальной точки шаблона), и когда они развертываются в базе данных, все самое сложное выполняется движком, расположенным ниже. - person David Atkinson; 06.09.2010
comment
Многие пользователи просили нас: 1) поддержать проект базы данных VS и 2) разработать дизайнера, поэтому мы активно над этим работаем. В настоящий момент система управления исходным кодом SQL позволяет вам разрабатывать в реальной базе данных, и поэтому вы можете извлечь выгоду из использования существующих конструкторов в SSMS. К сожалению, SQL Source Control (пока) не поддерживает проект базы данных VS2010, поэтому, если вы застряли с этим, ваши возможности, к сожалению, ограничены, по крайней мере, на данный момент. - person David Atkinson; 06.09.2010
comment
@David, Спасибо, что нашли время ответить. Хотя мне очень нравятся ваши продукты, я думаю, что за $$$$$ MS взимает плату за VSTS с модулем Datadude, он должен, по крайней мере, иметь программные функции SSMS без необходимости использования сторонних плагинов. Что касается вашего первого ответа на мой ответ, я немного озадачен. Мне неизвестен оператор CREATE для ограничений таблицы ... Единственное, о чем я знаю, находится в операторе ALTER TABLE (как упоминалось в моем первом ответе). Я полностью осознаю необходимость использования только операторов CREATE. - person Richard B; 06.09.2010
comment
Да, вы совершенно правы. Ограничения могут быть представлены только как ALTER для таблицы, поэтому я понимаю, что не все так просто, как могло бы быть. Я не могу говорить от лица Microsoft, поэтому не понимаю, почему дизайнеры не присутствуют. Однако, если Red Gate решит поддержать проект базы данных VS 2010, я опубликую в этой теме и дам вам знать. Это все, что я могу внести с того места, где я стою. - person David Atkinson; 07.09.2010
comment
Прикомандированный сюда. Я создаю все свои связи и таблицы в конструкторе диаграмм базы данных. Я не могу себе представить, почему кто-то вообще должен спрашивать, почему это проще и надежнее, чем печатать целые скрипты? Я немного озадачен этим ответом, я нахожусь в альтернативной вселенной? - person MvcCmsJon; 15.02.2011

Я только что заметил, что VS 11 Beta теперь включает в себя конструктор, хотя он грубоват (например, отношения все еще нужно вводить вручную).

person Roger    schedule 29.05.2012
comment
Привет, спасибо за ответ. Звучит обнадеживающе! Придется это проверить. У нас были и другие серьезные проблемы, в частности, с обновлениями и ограничениями. Я так долго не участвовал в этой части, я не знаю точных проблем, но она не так полезна, как мы думали, когда мы взяли на себя обязательство. Надеюсь, они решили и эти проблемы. - person Richard B; 01.06.2012

Я использую проект базы данных в VS2010 следующим образом:

  1. Создавайте все с помощью SQL Server Management Studio.
  2. Синхронизируйте его с моим проектом базы данных.
  3. Когда мне нужно что-то изменить, делайте это в SQL Server Management Studio.
  4. Используйте сравнения схем для синхронизации проекта базы данных.
person moi_meme    schedule 14.04.2011

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

    CREATE TABLE [User]
(
    UserID              INT             NOT NULL    IDENTITY (1,1), 
    UserName            NVARCHAR(20)    NOT NULL,
    UserPassword        NVARCHAR(20)    NOT NULL,
    EmailAddress        NVARCHAR(50)    NOT NULL,
    Location            NVARCHAR(100),
    MobileNumber        VARCHAR(10),
    CreatedDate         DATETIME        NOT NULL    
        CONSTRAINT User_CreatedDate_DF  DEFAULT                 (GETDATE()),
        CONSTRAINT User_UserID_PK       PRIMARY KEY CLUSTERED   (UserID),
        CONSTRAINT User_UserName_UQ     UNIQUE                  (UserName),
        CONSTRAINT User_EmailAddress_CK CHECK                   (EmailAddress LIKE '%@%.%'),
        CONSTRAINT User_MobileNumber_CK CHECK                   (MobileNumber LIKE '[2-9][0-9][0-9][2-9][0-9][0-9][0-9][0-9][0-9][0-9]')
)

Вы можете использовать функции для встраивания в свои проверочные ограничения, но, опять же, это упрощенный пример.

person Clement DeLarge    schedule 08.03.2011
comment
Спасибо, что нашли время, чтобы дать ответ, но, к сожалению, добавление ограничений как часть оператора CREATE TABLE не разрешено в проекте VSDB, и даже если бы это было так, это нарушило бы цели наличия отдельных файлов для каждого объекта базы данных. , которые включают: 1. защиту через систему контроля версий и 2. наличие отдельных объектов для сравнения в процессе обновления. Я считаю, что создание этих отдельных объектов в виде файлов требует много времени. С помощью конструктора таблиц я мог создать таблицу и все ограничения и связанные объекты в виде файлов за считанные минуты. - person Richard B; 09.03.2011
comment
И, кстати, я хорошо знаю, как написать сценарий создания таблицы с ограничениями, но все равно спасибо ... Я тоже удивлен, что получил только 2 ответа по этому поводу. Особенно удивился, что не получил ответа от кого-то из MS, может быть, из команды Visual Studio. Ну что ж.. - person Richard B; 09.03.2011

Как я прокомментировал здесь, ссылка VS2010 утверждает, что существуют a Table Designer в этом документе.

Но по какой-то причине, независимо от того, какой проект я создаю (Серверный проект 2008/2005, проект базы данных 2008/2005), я не могу отобразить Table Designer.

person Sebastian    schedule 30.08.2012
comment
Я думаю, что это в основном конструктор таблиц из SSMS. Я думаю, он предназначен для взаимодействия с экземпляром SQL-сервера или файлом MDF, а не для проекта базы данных VSTS. Это было бы ничем не иначе, как просто открыть SSMS (или бесплатную версию), спроектировать таблицу и скопировать код SQL, генерируемый инструментом, в файлы проекта. Вам все равно придется вручную поддерживать код для ограничений в виде отдельных файлов кода. Мы с вами оба считаем, что для инструмента проектирования было бы лучше поддерживать все файлы, связанные с таблицами. Я не сомневаюсь, что проект DB погибнет на корню вместо EF. - person Richard B; 05.09.2012