Добавление новой хранимой процедуры в существующий проект базы данных Visual Studio 2008 - PullRequest
1 голос
/ 13 октября 2009

Я импортировал существующую базу данных SQL Server 2008 в проект базы данных Visual Studio 2008, чтобы управлять объектами базы данных контроля версий и выполнять миграцию кода базы данных. Это прекрасно работает, и я могу собирать и развертывать в dev, test, staging, live и т. Д.

Теперь я хочу добавить новую хранимую процедуру (с оператором предоставления) в существующий проект базы данных и не могу найти идеальный способ сделать это? Я могу либо: -

  1. Создайте хранимую процедуру в базе данных разработки, перепроектируйте скрипт и «импортируйте скрипт» в мой проект Visual Studio.
  2. Создайте хранимую процедуру непосредственно в моем проекте Visual Studio, но оператор предоставления выдает там ошибку, поэтому мне придется вручную редактировать xml в сценарии «Database.sqlpermissions».
  3. Создайте хранимую процедуру прямо в моем проекте Visual Studio. Затем добавьте оператор GRANT в файл «Script.PostDeployment.sql». Но теперь мои разрешения распределены по двум файлам «Database.sqlpermissions» и «Script.PostDeployment.sql».

Каков предпочтительный способ добавления новой хранимой процедуры с оператором предоставления в существующий проект базы данных Visual Studio 2008?

1 Ответ

1 голос
/ 14 октября 2009

Насколько я понимаю, предпочтительным местом для разрешений является файл Database.sqlpermissions. Работать с IMHO может быть затруднительно, потому что это заставляет вас перейти от использования традиционного синтаксиса GRANT EXECUTE ON OBJECT к GRANTEE к работе с XML. IntelliSense упрощает получение правильного синтаксиса в файле, но работать с ним не так просто, как самостоятельно писать оператор или даже использовать GUI в SSMS.

За исключением разницы в синтаксисе, главная причина, по которой мне не нравится разделение проблем, заключается в том, что трудно понять, имеет ли объект связанный оператор предоставления в файле Database.sqlpermissions. Возможно, в Visual Studio есть какой-то путь, и я его не видел, но было бы неплохо иметь возможность посмотреть свойства объекта в проекте и увидеть список разрешений для объекта - аналогично SSMS. (Если кто-нибудь знает, как это сделать в VS, пожалуйста, дайте мне знать!)

...