@ User3025064 является правильным и является самым простым решением, однако исключительность должна быть проверена сначала для прямоугольников, которые не пересекаются, например, для прямоугольников A & amp; B (в Visual Basic):
If A.Top =< B.Bottom or A.Bottom => B.Top or A.Right =< B.Left or A.Left => B.Right then
Exit sub 'No intersection
else
width = ABS(Min(XA2, XB2) - Max(XA1, XB1))
height = ABS(Min(YA2, YB2) - Max(YA1, YB1))
Area = width * height 'Total intersection area.
End if
В Visual Studio 2008 SP1 Team Suite Бранн упоминает версию 1.4 мастера публикации баз данных. Он устанавливается с sql server 2008 (может быть, только профессиональным?) В \ Program Files \ Microsoft SQL Server \ 90 \ Tools \ Publishing \ 1.4. Вызов VS из проводника сервера просто вызывает это. Вы можете добиться той же функциональности через командную строку, например:
sqlpubwiz help script
Я не знаю, есть ли в версии 1.4 те же проблемы, что и в версии 1.1 (пользователи преобразуются в роли, ограничения не создаются в правильном порядке), но это не решение для меня, потому что он не выполняет сценарии объектов для разных файлов, как это делает параметр Tasks-> Generate Scripts в SSMS.В настоящее время я использую модифицированную версию Scriptio (использует MS SMO API), чтобы действовать как улучшенная замена мастеру публикации базы данных (sqlpubwiz.exe). В настоящее время его нельзя использовать в сценариях из командной строки, я мог бы добавить этот вклад в будущем.
Scriptio изначально был размещен в блоге Билла Грациано, но впоследствии был выпущен Биллом в CodePlex и обновлен другими. Прочтите обсуждение, чтобы узнать, как скомпилировать для использования с SQL Server 2008.
РЕДАКТИРОВАТЬ: С тех пор я начал использовать продукт RedGate SQL Compare для этого. Это очень хорошая замена тому, чем должен был быть мастер публикации sql. Вы выбираете базу данных, резервную копию или моментальный снимок в качестве источника, а папку в качестве места вывода, и все это красиво выгружается в структуру папок. Это тот же формат, что и другой их продукт, SQL Source Control.
От Visual Studio 2008 SP1 TeamSuite:
На вкладке Server Explorer / Data Connections, существует публикование к инструменту поставщика, который делает то же как "Мастер Печати по базе данных Microsoft SQL Server", но который совместим с SQL-сервером MS 2008.
Если Вы хотите к решению Microsoft, можно попробовать: Мастер Печати по базе данных Microsoft SQL Server 1.1
Это создает пакетную обработку, которую можно выполнить каждый раз, когда необходимо восстановить сценарии.
Можно сделать это с кодом T-SQL с помощью таблиц INFORMATION_SCHEMA.
существуют также сторонние программы - мне нравится Вершина Сценарий SQL за точно использование, о котором Вы говорите. Я выполняю его полностью от командной строки.
Если Вы - разработчик, определенно пойдите с SMO. Вот ссылка на класс Сценариста, который является Вашей начальной точкой:
В Инструментах> Опции> Разработчики> Разработчики Таблицы и Базы данных там являются опцией для 'Автоматического, генерируют сценарии изменения', которые генерируют один для каждого изменения, которое Вы вносите в то время, когда Вы сохраняете его.
Можно использовать Объект управления SQL Server (SMO) для автоматизации задач управления SQL Server 2005 года включая генерацию сценариев: http://msdn.microsoft.com/en-us/library/ms162169.aspx .