VirtualIreland.ru - Виртуальная Ирландия
Вернуться   VirtualIreland.ru - Виртуальная Ирландия > Живем в Ирландии > IT и Связь

IT и Связь Обсуждение "айтишных" вопросов и средств связи

Ответ
 
Опции темы Опции просмотра
Старый 28.05.2010, 14:32   #16
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от Yapi Посмотреть сообщение
Похоже что это таки признаный MS баг:
Да мы им этот баг файлили еще в 2002 году - получили ответ что это не есть первоочередная проблема, в очередь поставят и когда пофиксят - нам сообщат.
В 2005 не пофиксили, надо проверить в 2008.

Но я все равно смутно понимаю что ты будешь делать при удалении/добавлении объекта.
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 28.05.2010, 15:02   #17
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Но я все равно смутно понимаю что ты будешь делать при удалении/добавлении объекта.
У меня такое чувство что я опять в 90-е попал.
Зачем мне что-то делать? Если в следующей версии скрипта (БД) что-то добавилось/исчезло/изменилось то какой-нибудь ExamDiff мне покажет что тут прибавилось, а здесь убавилось, а это поменяли (сравнивая скрипты).

Это не работает когда весь файл (практически) волшебным образом меняется и никакая diff тебе не отследит что и где реально изменилось.

Это ни в коем случае не наезд, но в "более других" БД доступные скриптеры как-то более последовательны и предсказуемы. То есть у меня просто культурный шок - буду перестраивать картину мира.

Yapi добавил 28.05.2010 в 16:05
Цитата:
Сообщение от AlexL Посмотреть сообщение
предложи способ как это можно сделать
Даже не знаю... Например оговорить порядок генерации сущностей (таблицы, view, sp, etc) и потом всегда генерировать сущности в алфавитном порядке. В этом случае БД с одинаковой структурой гарантированно выдадут одинаковый скрипт - что и нужно несчастным библиотекарям для слежения за шаловливыми ручками девелоперов.
__________________
«Борітеся — поборете!»

Последний раз редактировалось Yapi, 28.05.2010 в 15:05. Причина: Добавлено сообщение
Yapi вне форума   Ответить с цитированием
Старый 28.05.2010, 19:45   #18
READ ONLY
 
Аватар для AlexL
 
Сообщений: 3,156
Благодарности: 1,856 в 929 сообщениях Поиск благодарностей AlexL
Отправить сообщение для  AlexL с помощью ICQ
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от Yapi Посмотреть сообщение
У меня такое чувство что я опять в 90-е попал.
Зачем мне что-то делать? Если в следующей версии скрипта (БД) что-то добавилось/исчезло/изменилось то какой-нибудь ExamDiff мне покажет что тут прибавилось, а здесь убавилось, а это поменяли (сравнивая скрипты).

Это не работает когда весь файл (практически) волшебным образом меняется и никакая diff тебе не отследит что и где реально изменилось.

Это ни в коем случае не наезд, но в "более других" БД доступные скриптеры как-то более последовательны и предсказуемы. То есть у меня просто культурный шок - буду перестраивать картину мира.

Yapi добавил 28.05.2010 в 16:05


Даже не знаю... Например оговорить порядок генерации сущностей (таблицы, view, sp, etc) и потом всегда генерировать сущности в алфавитном порядке. В этом случае БД с одинаковой структурой гарантированно выдадут одинаковый скрипт - что и нужно несчастным библиотекарям для слежения за шаловливыми ручками девелоперов.
дело в том, что наличие зависимостей между объектами, нарушает алфавитный порядок генерации, кроме того в структуру базы данных входят такие сущности, которые к структуре как таковой имеют малое отношение как-то роли, схемы, права на объекты и т.п. скажем добавление права на какой либо объект меняет скрипт базы.

сравнивать структуры базы данных используя filediff это как раз таки 90годы, если я сейчас сделаю скрипт базы которую мы здесь с Серегой наваяли, то получится несколько мегов, которые filediff просто неудобно просматривать. Существуют специализированные тулзы, которые производят разбивку объектов базы по категориям: таблицы, вьюхи, процедуры, функции, и т.п. и показывают изменения выделенным цветом для каждой группы объектов и каждого объекта в частности. У меня уходит пара минут на сравнение двух достаточно больших баз данных, в каждой из которых несколько тысяч объектов.
__________________
Хотели всё и сразу, а получили ничего и надолго.
[url=http://www.visited.ru][img]http://www.visited.ru/flagmap.php?visited=ATBEBGCZFRDEIEITMTNLRUESUKVATR[/img][/url]
AlexL вне форума   Ответить с цитированием
Старый 29.05.2010, 14:45   #19
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Как обычно: "There are ways and there is the Microsoft way"

Цитата:
Сообщение от AlexL Посмотреть сообщение
дело в том, что наличие зависимостей между объектами, нарушает алфавитный порядок генерации, кроме того в структуру базы данных входят такие сущности, которые к структуре как таковой имеют малое отношение как-то роли, схемы, права на объекты и т.п. скажем добавление права на какой либо объект меняет скрипт базы.
Стандартный скриптовщик всё равно не учитывает зависимости между объектами. Хорошо - пускай тогда хотя-бы выдают повторяющийся результат для одинаковой структуры.
Изменение скрипта не проблема и более чем ожидаемое событие. Проблема в том что порядок объектов в скрипте является чуть-ли не случайным что чрезвычайно затрудняет анализ различий стандартными средствами контроля версий.

Цитата:
Сообщение от AlexL Посмотреть сообщение
сравнивать структуры базы данных используя filediff это как раз таки 90годы, если я сейчас сделаю скрипт базы которую мы здесь с Серегой наваяли, то получится несколько мегов, которые filediff просто неудобно просматривать. Существуют специализированные тулзы, которые производят разбивку объектов базы по категориям: таблицы, вьюхи, процедуры, функции, и т.п. и показывают изменения выделенным цветом для каждой группы объектов и каждого объекта в частности. У меня уходит пара минут на сравнение двух достаточно больших баз данных, в каждой из которых несколько тысяч объектов.
Далеко не у всех пользователей MS SQL Server Standard/Compact/Mobile/Express БД с тысячами сущностей и терабайтами данных. Для большинства мелких/средних проектов с нечасто изменяемой структурой БД покупка специального средства каталогизации и сравнения структуры БД выглядит излишеством и увеличивает сложность проекта. Если иначе никак - то конечно да, куда денешься.
__________________
«Борітеся — поборете!»
Yapi вне форума   Ответить с цитированием
Старый 30.05.2010, 00:16   #20
Заслуженный Участник
 
Сообщений: 1,228
Благодарности: 438 в 286 сообщениях Поиск благодарностей Kot
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Вот почитал:
Цитата:
Сообщение от YellowMan Посмотреть сообщение
На самом деле если приложить руки и немного головы - то не тяжело.
и
Цитата:
Сообщение от YellowMan Посмотреть сообщение
Вообще у БД совсем другие задачи, они не предназначены для выдавания одинаковых скриптов
и думаю... так все таки куда нужно руки прикладывать-то?
проблема в том, что ЦВС (как впрочем и все современные СЦМ) предназначены для хранения текста, что не есть метаданными по сути.
В здравом уме и при памяти, эту задачу не решить исходя из данности. Нужно менять основу... Вы уверены что сможете предложить решение?

Kot добавил 30.05.2010 в 01:18
Цитата:
Сообщение от Yapi Посмотреть сообщение
Для большинства мелких/средних проектов с нечасто изменяемой структурой БД покупка специального средства каталогизации и сравнения структуры БД выглядит излишеством и увеличивает сложность проекта. Если иначе никак - то конечно да, куда денешься.
Переходите на объекты. Джаву (или другой ОО) легче хранить в СЦМе.

Последний раз редактировалось Kot, 30.05.2010 в 00:18. Причина: Добавлено сообщение
Kot вне форума   Ответить с цитированием
Старый 31.05.2010, 10:18   #21
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от AlexL Посмотреть сообщение
У меня уходит пара минут на сравнение двух достаточно больших баз данных, в каждой из которых несколько тысяч объектов.
Хм, а чтож ты мне говорил что тебе полдня надо? Зайди-ка в кабинетег

Цитата:
Сообщение от Yapi Посмотреть сообщение
Стандартный скриптовщик всё равно не учитывает зависимости между объектами.
Есть такая табличка - sysdepends. Стандартный скриптовщик как раз туда лазаит, другое дело что я могу так написать изменение что оно туда не попадет.


Цитата:
Сообщение от Yapi Посмотреть сообщение
Проблема в том что порядок объектов в скрипте является чуть-ли не случайным что чрезвычайно затрудняет анализ различий стандартными средствами контроля версий.
Стандартными средствами, написанными без учета специфики баз данных.

Цитата:
Сообщение от Yapi Посмотреть сообщение
Для большинства мелких/средних проектов с нечасто изменяемой структурой БД покупка специального средства каталогизации и сравнения структуры БД выглядит излишеством
Дык кто спорит - вариантов на самом деле куча - триггер на базу с выгрузкой через xp_cmdshell куда угодно, подсмотреть профайлером что делает встроенный скриптовщик и переписать как тебе надо. еще 1000 разных вариантов на любой вкус и кошелек.

Цитата:
Сообщение от Yapi Посмотреть сообщение
увеличивает сложность проекта
Это каким образом ?

Цитата:
Сообщение от Kot Посмотреть сообщение
Вы уверены что сможете предложить решение?
Да, уверен - желаете нанять? Почасовой рейт я в личку пришлю, чтобы не шокировать публику
__________________
My Church is Black...

Последний раз редактировалось YellowMan, 31.05.2010 в 10:28. Причина: Добавлено сообщение
YellowMan вне форума   Ответить с цитированием
Старый 31.05.2010, 14:07   #22
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от Kot Посмотреть сообщение
Переходите на объекты. Джаву (или другой ОО) легче хранить в СЦМе.
Идите пожалуйста в тему про новый закон о социальных пособиях бодаться с Мр. ЗигЗагом.

Здесь не обсуждается какой подход к построению систем лучше в общем и целом. Здесь я пытаюсь узнать как мне проще решить вполне конкретную прикладную задачку (даже не задачу). Пытаюсь я это узнать у знающей и практикующей общественности по причине моих собственных нетвёрдых знаний в данной узкой прикладной области. Советы по "общему улучшению мира" немножко не по теме топика.
__________________
«Борітеся — поборете!»
Yapi вне форума   Ответить с цитированием
Старый 31.05.2010, 14:17   #23
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Yapi, ты суров сегодня не по-деццки
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Старый 31.05.2010, 15:07   #24
READ ONLY
 
Аватар для AlexL
 
Сообщений: 3,156
Благодарности: 1,856 в 929 сообщениях Поиск благодарностей AlexL
Отправить сообщение для  AlexL с помощью ICQ
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Yapi, навскидку, самое простое комбинация object_definition() / sys.objects. Для таблиц

Scripting Out the Dependencies for a Database in Visual Basic
This code example shows how to discover the dependencies and iterate through the list to display the results.

Visual Basic Copy Code
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Define a Scripter object and set the required scripting options.
Dim scrp As Scripter
scrp = New Scripter(srv)
scrp.Options.ScriptDrops = False
scrp.Options.WithDependencies = True
'Iterate through the tables in database and script each one. Display the script.
'Note that the StringCollection type needs the System.Collections.Specialized namespace to be included.
Dim tb As Table
Dim smoObjects(1) As Urn
For Each tb In db.Tables
smoObjects = New Urn(0) {}
smoObjects(0) = tb.Urn
If tb.IsSystemObject = False Then
Dim sc As StringCollection
sc = scrp.Script(smoObjects)
Dim st As String
For Each st In sc
Console.WriteLine(st)
Next
End If
Next
Scripting Out the Dependencies for a Database in Visual C#
This code example shows how to discover the dependencies and iterate through the list to display the results.

Copy Code
//Connect to the local, default instance of SQL Server.
{
Server srv = default(Server);
srv = new Server();
//Reference the AdventureWorks2008R2 database.
Database db = default(Database);
db = srv.Databases("AdventureWorks2008R2");
//Define a Scripter object and set the required scripting options.
Scripter scrp = default(Scripter);
scrp = new Scripter(srv);
scrp.Options.ScriptDrops = false;
scrp.Options.WithDependencies = true;
//Iterate through the tables in database and script each one. Display the script.
//Note that the StringCollection type needs the System.Collections.Specialized namespace to be included.
Table tb = default(Table);
Urn[] smoObjects = new Urn[2];
foreach ( tb in db.Tables) {
smoObjects = new Urn[1];
smoObjects(0) = tb.Urn;
if (tb.IsSystemObject == false) {
StringCollection sc = default(StringCollection);
sc = scrp.Script(smoObjects);
string st = null;
foreach ( st in sc) {
Console.WriteLine(st);
}
}
}
}
__________________
Хотели всё и сразу, а получили ничего и надолго.
[url=http://www.visited.ru][img]http://www.visited.ru/flagmap.php?visited=ATBEBGCZFRDEIEITMTNLRUESUKVATR[/img][/url]
AlexL вне форума   Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать на сообщения
Вы не можете добавлять вложения
Вы не можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщ.
Создание Детского хора! shanna Детский досуг и увлечения 36 18.05.2010 12:14
Создание ВебСайта Vadims IT и Связь 23 24.06.2009 21:41
А вы бы поддержали создание единого государства Русь? Mr.Val Политика 594 15.03.2008 23:12
Пентагон ... планировал создание гей-бомбы dzher Само приползло 0 13.06.2007 11:20
Employment Permits Bill 2005 29/06/2005 published aaaa Работа в Ирландии 16 31.08.2005 19:34


Часовой пояс GMT, времени сейчас: 05:57.


vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd., Русификация: zCarot, Vovan & Co
©2003-2025 VirtualIreland.ru - Виртуальная Ирландия