Re[3]: Синхронизация создания БД в MSSQL2008
От: Sinix  
Дата: 27.04.10 05:18
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Т.е. права на новую БД даются асинхронно? Как дождаться их создания?

Синхронно. Либо логин какой-то магией не становится dbo, либо проблема в пулинге (как и оказалось).

S>>1) Создание БД всегда должно выполняться от sq. Оберните в EXECUTE AS

Z>Не понял, можно подробнее?
Очепятка. От sa. Чтобы не было "оно не работает" из-за порушенного ownership chaining/удалённого логина.


Z>Пишется как раз удобная замена для таких скриптов.

Смотрим синтаксис sqlcmd, regex в руки (замена параметров и разбиение по GO, главные грабли — с игнорированием строковых литералов) и вперёд. Бонус — скрипт будет тестабелен и реюзабелен.

Вариант 2 — смотреть на дб проекты и dbschema. Деплоятся без студии
http://blogs.msdn.com/gertd/archive/2009/06/05/declarative-database-development.aspx

Since most SQL Server deployments do not have Visual Studio installed, or you simply do not have access from your Visual Studio environment to the database that needs to get updated, there is a fully standalone command-line-based deployment engine that allows you to deploy the results of a build. This command-line engine is XCOPY deployable, so you can copy it onto a memory stick or server share and deploy your database from there.
1: "%programfiles%\microsoft visual studio 9.0\vstsdb\deploy\vsdbcmd.exe"
2: /a:Deploy
3: /manifest:MyDatabase.deploymanifest
4: /p:DeploymentConfigurationFile=MyDatabase.sqldeployment
5: /p:SqlCommandVariablesFile=MyDatabase.sqlcmdvars
6: /cs:"Data Source=MyServer\sql2008;Integrated Security=true"

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.