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

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

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

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

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


person Andy Jones    schedule 13.10.2009    source источник


Ответы (1)


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

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

person Tim Lentine    schedule 14.10.2009