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

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

Ответ
 
Опции темы Опции просмотра
Старый 27.05.2010, 15:58   #1
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Создание скрипта для MS SQL 2005 БД?

Случилась нужда помещать чью-то MS SQL 2005 DB в CVS, а с MS SQL 2005 давно не работал. Памагите.

Существует ли стандартный тулз для создания скрипта метаданных всей БД с учётом зависимостей или повторный запуск того-же скрипта считается у MS признаком хорошего тона?

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

Спасибо.
__________________
«Борітеся — поборете!»
Yapi вне форума   Ответить с цитированием

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

Это давно известная фича МС СКЛ - иногда мне кажется они специально ее не фиксят
Повесь системный триггер на базу который будет записывать все нужные тебе изменения метаданных и оттуда корми CVS.
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Старый 27.05.2010, 16:15   #3
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Это давно известная фича МС СКЛ - иногда мне кажется они специально ее не фиксят
Я даже не знаю что на это сказать ...

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Повесь системный триггер на базу который будет записывать все нужные тебе изменения метаданных и оттуда корми CVS.
"Мопед не мой". Может где есть посмотреть на пример/общую идею "как"? А есть ли способ знать/установить/предсказать порядок скриптования объектов?

Пойду заливать горе ромом.
__________________
«Борітеся — поборете!»
Yapi вне форума   Ответить с цитированием
Старый 27.05.2010, 16:22   #4
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от Yapi Посмотреть сообщение
А есть ли способ знать/установить/предсказать порядок скриптования объектов?
Насколько я знаю - нет. какой-то порядок есть но он не гарантирован, скрипт делает простой select из sysobjects.

Цитата:
Сообщение от Yapi Посмотреть сообщение
Я даже не знаю что на это сказать ...
А зачем что-то говорить? было бы оно декларированно и не работало - это одно, но этого никогда никто не декларировал.

Цитата:
Сообщение от Yapi Посмотреть сообщение
Может где есть посмотреть на пример/общую идею "как"?
Как-то так - писал AlexL, к нему и вопросы

Цитата:
CREATE TRIGGER [ddl_trig_sysmonitor]
ON Database --WITH ENCRYPTION
FOR DDL_DATABASE_LEVEL_EVENTS

AS


set nocount on
SET ANSI_PADDING on

declare @xml_data XML

set @xml_data = EVENTDATA()

insert into tbl_ddl_log (
db_user,
login_time,
last_batch,
hostname,
hostprocess,
spid,
xml_data,
timestamp,
objecttype,
objectname,
databasename,
eventtype
)



select
session_user
,s.login_time
,s.last_batch
,host_name()
,host_id ()
,s.spid
,@xml_data
,current_timestamp
,@xml_data.value('(/EVENT_INSTANCE/ObjectType)[1]','varchar(40)')
,@xml_data.value('(/EVENT_INSTANCE/ObjectName)[1]','varchar(40)')
,@xml_data.value('(/EVENT_INSTANCE/DatabaseName)[1]','varchar(40)')
,@xml_data.value('(/EVENT_INSTANCE/EventType)[1]','varchar(40)')

from master..sysprocesses s
where s.spid = @xml_data.value('(/EVENT_INSTANCE/SPID)[1]','int')
and @xml_data.value('(/EVENT_INSTANCE/EventType)[1]','varchar(40)') != 'STATISTICS'
Там заодно запишется кто и когда менял.

YellowMan добавил 27.05.2010 в 17:45
ЗЫ

Счас проверил что за скрипты генерятся - за три раза они выполнились в одном и том-же порядке и все имееют сортировку, то есть вполне можно говорить о том что порядок соблюдается.
Но эта фича недокументирована - МС вполне может изменить все не только со следующей версией но и со следующим патчем, преценденты были. Я бы не полагался особо.

Да и что ты будешь делать если появиться новый объект\удалиться старый? Порядок уже будет нарушен.
__________________
My Church is Black...

Последний раз редактировалось YellowMan, 27.05.2010 в 16:45. Причина: Добавлено сообщение
YellowMan вне форума   Ответить с цитированием
Старый 27.05.2010, 21:17   #5
Заслуженный Участник
 
Сообщений: 1,228
Благодарности: 438 в 286 сообщениях Поиск благодарностей Kot
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Да и что ты будешь делать если появиться новый объект\удалиться старый? Порядок уже будет нарушен.
Дадад... Кесарю - кесарево, а метаданные хранить в ЦВСе - тяжело...
Kot вне форума   Ответить с цитированием
Старый 28.05.2010, 08:04   #6
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от Kot Посмотреть сообщение
Дадад... Кесарю - кесарево, а метаданные хранить в ЦВСе - тяжело...
На самом деле если приложить руки и немного головы - то не тяжело.
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Старый 28.05.2010, 10:24   #7
Участник
 
Откуда: Maigh Eo
Сообщений: 81
Благодарности: 65 в 14 сообщениях Поиск благодарностей heg
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Можно создавать скрипты как "file per object".
Тут еще - DBGhost http://www.innovartis.co.uk/.
heg вне форума   Ответить с цитированием
Старый 28.05.2010, 11:52   #8
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Да и что ты будешь делать если появиться новый объект\удалиться старый? Порядок уже будет нарушен.
Мне простые вещи нужны в порядке проджект менеджмента - иметь возможность сохранить воспроизводимую структуру БД в используемой CVS и иметь возможность простого сравнения двух произвольно взятых сохраненных структур на предмет различий. Что может быть проще? Подход с триггером не даёт никакой возможности сравнить текущую БД с предыдущей версией без анализа всех прошедших с того момента изменений.

Вот пытаюсь найти оптимальный способ достичь желаемого результата.

Yapi добавил 28.05.2010 в 13:01
Цитата:
Сообщение от heg Посмотреть сообщение
Можно создавать скрипты как "file per object".
Это помогает проанализировать отличия двух БД, но затрудняет создание БД из скрипта (ибо опять упираемся в отсутствие порядка исполнения согласно зависимостей) и сравнение двух произвольно взятых сохраненных состояний (прийдётся проверять множество объектов). С практической стороны один скрипт или несколько (таблицы, программные объекты, views, etc) гораздо более просты в обращении.
__________________
«Борітеся — поборете!»

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

Цитата:
Сообщение от Yapi Посмотреть сообщение
иметь возможность сохранить воспроизводимую структуру БД в используемой CVS и иметь возможность простого сравнения двух произвольно взятых сохраненных структур на предмет различий.
1. Ну и сохраняй на здоровье. Зачем тебе порядок?
2. http://www.red-gate.com/products/SQL_Compare/index.htm - купи и сравнивай. Оно заодно и сохраняет структуру тоже.
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Старый 28.05.2010, 13:30   #10
Участник
 
Откуда: Maigh Eo
Сообщений: 81
Благодарности: 65 в 14 сообщениях Поиск благодарностей heg
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от Yapi Посмотреть сообщение
Yapi добавил 28.05.2010 в 13:01


Это помогает проанализировать отличия двух БД, но затрудняет создание БД из скрипта (ибо опять упираемся в отсутствие порядка исполнения согласно зависимостей) и сравнение двух произвольно взятых сохраненных состояний (прийдётся проверять множество объектов). С практической стороны один скрипт или несколько (таблицы, программные объекты, views, etc) гораздо более просты в обращении.
Тут есть хороший обзор. Сравнение разных подходов. http://www.innovartis.co.uk/Automate...Whitepaper.htm
heg вне форума   Ответить с цитированием
Старый 28.05.2010, 14:05   #11
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

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

Цитата:
Сообщение от YellowMan Посмотреть сообщение
2. http://www.red-gate.com/products/SQL_Compare/index.htm - купи и сравнивай. Оно заодно и сохраняет структуру тоже.
Значит вменяемого стандартного инструментария нет. Это тоже результат, хоть и отрицательный
__________________
«Борітеся — поборете!»
Yapi вне форума   Ответить с цитированием
Старый 28.05.2010, 14:26   #12
READ ONLY
 
Аватар для AlexL
 
Сообщений: 3,156
Благодарности: 1,856 в 929 сообщениях Поиск благодарностей AlexL
Отправить сообщение для  AlexL с помощью ICQ
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

Цитата:
Сообщение от YellowMan Посмотреть сообщение
1. Ну и сохраняй на здоровье. Зачем тебе порядок?
2. http://www.red-gate.com/products/SQL_Compare/index.htm - купи и сравнивай. Оно заодно и сохраняет структуру тоже.
Red-Gate самое простое в обращении и недорогое из того что есть. В SQL Compare есть опция создать слепок(ки) (snapshot) структуры базы данных, с которым очень удобно работать. Можно сравнивать слепки (snapshot) между собой, базой данных, генерить скрипты и т.д. и т.п
__________________
Хотели всё и сразу, а получили ничего и надолго.
[url=http://www.visited.ru][img]http://www.visited.ru/flagmap.php?visited=ATBEBGCZFRDEIEITMTNLRUESUKVATR[/img][/url]
AlexL вне форума   Ответить с цитированием
Старый 28.05.2010, 14:28   #13
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

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

Цитата:
Сообщение от Yapi Посмотреть сообщение
Значит вменяемого стандартного инструментария нет.
Неа - мало кому нужен.
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием

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

Похоже что это таки признаный MS баг:

Цитата:
Posted by Microsoft on 5/5/2008 at 4:01 AM
Hi michaelplevy,
This issue is fixed and will be available in the next public release. Thanks for reporting this issue.

Regards
Vinod
__________________
«Борітеся — поборете!»
Yapi вне форума   Ответить с цитированием
Старый 28.05.2010, 14:29   #15
READ ONLY
 
Аватар для AlexL
 
Сообщений: 3,156
Благодарности: 1,856 в 929 сообщениях Поиск благодарностей AlexL
Отправить сообщение для  AlexL с помощью ICQ
По умолчанию Re: Создание скрипта для MS SQL 2005 БД?

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

предложи способ как это можно сделать
__________________
Хотели всё и сразу, а получили ничего и надолго.
[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, времени сейчас: 03:52.


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