Я говорю о полном контроле над выполнением батча. Если я не ошибаюсь, в 2005 все равно остались ошибки, снимающие батч. То есть, остается ситуация потери контроля, что делает полноценное серверное програмирование невозможным. Конечно, в 2000 мы научились выкручиваться из этой ситуации путем написания своих DLL. Конечно, этот прием применим и в 2005. Но это, на мой взгляд, не самый красивыйт выход — из этих DLL приходится устанавливать соединение со своим же сервером, что, грубо, удваивает нагрузку на сервер. Хотя, конечно, если делать bind соединениям, то серверу немного легче, но это НЕ ТО! Обойти можно все, что угодно, но возможность обхода не есть плюс продукту... А TRY / CATCH — это, конечно, хорошо. Но! Ничего принципиально нового он не дает, просто упрощает кодирование.
Я говорю о прозрачном написании кода. Я все еще надеюсь, что если в базе была таблица и вокруг нее была куча объектов, то я, развалив таблицу (тривиальная техническая нормализация) или вообще заменив ее представлением, могу так сэмулировать табличное поведение (trigger, что же еще?), что весь остальной код не надо будет трогать — он ничего не заметит.
Ну или если говорить о разработке проекта, то мне будет достаточно указать своим сотрудникам таблицу и документировать ее (предоставить метаданные), а есть там триггер или нет для них будет не очень важно. Он будет просто работать как сложный CONSTRAINT (что отчасти правда). Поведение самой таблицы при этом должно оставаться табличным! Даже если это сложное VIEW
Я говорю о способе в триггере установить @@error , @@rowcount , @@identity и прочие переменные, влиять на результат scope_identity() и т.д. Ну почему как только кто-то навешивает простой (а если сложный?) триггер на таблицу приходится пересматривать ВЕСЬ код, работающий с таблицей?
И, кстати, что там у нас с инсталяцией серверных продуктов? По-прежнему осталась головная боль с порядком поднятия объектов? Ничего нового в этой технологии не появилось? Мы, конечно, и это умеем обходить — обписали и это своими утилитами, но "за идею" обидно. Хотя, конечно, идеальных продуктов не бывает — я понимаю, но очень хочется
Re[2]: Вопросы для Григория Погульского \ SQL Server \ SDE/T
Здравствуйте, Григорий.
А>Похоже, что человек, который может адекватно ответить на данный вопрос, сейчас в отпуске. Я поговорю с ним, когда он вернется в середине января.
Можно ли уже получить какой-нибудь ответ?
--
Антон
Re[2]: Вопросы для Григория Погульского \ SQL Server \ SDE/T
От:
Аноним
Дата:
20.01.05 18:53
Оценка:
Ответ получить можно, но к сожалению отрицательный. Упомянутые процедуры останутся процедурами. DDL варианта не будет.
Re[2]: Вопросы для Григория Погульского \ SQL Server \ SDE/T
От:
Аноним
Дата:
30.01.05 10:03
Оценка:
Григорий, сейчас у многих специалистов, в т.ч. и у меня, сложилось довольно хорошее представление о Microsoft SQL Server 2005. Тем не менее хочется задать такой вопрос. С выходом сервера множество специалистов наверняка захочет перевести свои приложения с 2000 версии на 2005. При этом естественно, возникнет желание произвести рефакторинг клиент-серверного кода в соотвествии с новыми веяниями поддержки управляемого кода, расширения XML-типов, T-SQL и др. Будет ли ваша группа (я имею ввиду SQL Server Team) рекомендавать лучшие стратегии миграции в каком-то скомпановонном виде (документ/продукт) или вы ограничитесь MSDN Online и частично BOL?
Небольшой вопрос по MICROSOFT SQL SERVER 2005 Beta 2:
Очень странный инсталлер. Невозможно за раз проинсталлировать сервер, постоянно выдает ошибки (ОС чистая — Win2003), устанавливается с трудом (приходится проделывать фокусы с реестром и т.д.). Ваши рекомендации? Или мне опять обращаться в Support?
Re[2]: Вопросы для Григория Погульского \ SQL Server \ SDE/T
От:
Аноним
Дата:
03.02.05 06:56
Оценка:
>При этом естественно, возникнет желание произвести рефакторинг клиент-серверного кода в соотвествии с новыми веяниями поддержки управляемого кода, расширения XML-типов, T-SQL и др. >Будет ли ваша группа (я имею ввиду SQL Server Team) рекомендавать лучшие стратегии миграции в каком-то скомпановонном виде (документ/продукт) или вы ограничитесь MSDN Online и частично BOL?
Присоединяюсь к вопросу Александра, хотелось услышать ваше мнение по этому поводу, данный вопрос актуален и для меня.
Re[2]: Вопросы для Григория Погульского \ SQL Server \ SDE/T
От:
Аноним
Дата:
17.02.05 02:32
Оценка:
Прошу прощения за задержку. Что-то я не получаю уведомлений.
Трудно конкретно ответить на ваши вопросы.
Upgrade уделяется большое внимание. Будут и печатные материалы и продукты. Будет развиваться BPA (best practice analyzer). Так что можно ожидать большей поддерджки перехода на SQL Server 2005.
Про бету 2 ничего сказать не могу. Давно было Мы последнее время регулярно выпускаем CTP релизы. Я бы рекомендовал установить последний доступный релиз. И ошибок меньше и в целом состояние продукта гораздо ближе к финальному.
Поделитесь с какими основными проблеммами столкнулась команда SQL Server при добавлении хоста CLR ?
Народная мудрось
всем все никому ничего(с).
Re: Вопросы для Григория Погульского \ SQL Server \ SDE/T \
От:
Аноним
Дата:
02.03.05 15:14
Оценка:
Привет Григорий! Где можно найти описание базы примеров "Adventure Works" сервера SQL 2005? Дело в том, что там таблиц не мало и хотя бы краткое её описание не помешало бы!
Спасибо, Михаил
Вопросы для Григория Погульского \ SQL Server \ SDE/T \ SQL
От:
Аноним
Дата:
02.03.05 16:58
Оценка:
Александр и Григорий, скажите пожалуйста, почему Microsoft не делится информацией по формату Transaction Log'a?? Почему MS сам не сделает прогу для просмотра этого лога?
Спасибо.
Re: Вопросы для Григория Погульского \ SQL Server \ SDE/T \
От:
Аноним
Дата:
02.03.05 22:25
Оценка:
Вот что ответил один из разработчиков по поводу CLR
There were bunch of issues we had to solve. Some of them include:
— Sharing process's resources between SQL Server and CLR
— Diferent execution models of SQL Server and CLR
— CLR didn't have notion of nonpreemptive scheduling
— Mismatch in exception models
— CLR hasn't been design to be a database component:
— Stability of CLR
— Prone to unresolvable deadlocks
— Fail fast
And much more
Re: Вопросы для Григория Погульского \ SQL Server \ SDE/T \
От:
Аноним
Дата:
04.03.05 16:22
Оценка:
Насчет SIFT и Navision, судя по всему, я пролетаю (только не говорите, что не знаете, что это такое!)...
Ладно. Тогда другой вопрос.
Почему Майкрософт упорно отказавается встроить IntelliSence/AutoComplete для SQL? Например, в "Aqua Data Studio" (http://www.aquafold.com) это реализовано, и вполне неплохо (лучше так, чем никак). Очень помогает в написании скриптов.
Вот сейчас запущен свеженький (февральский CTP) "SQL Express Manager". Картинки новые (если сравнить со старым QueryAnalyser-ом), но содержание осталось абсолютно то же, даже меньше из-за отсутствие темплейтов.
Почему? Что ТАКОГО сложного реализовать это? Почему парни из AquaFold смогли?
—
Real programmers don't comment their code.
If it was hard to write, it should be hard to understand.
Re: Вопросы для Григория Погульского \ SQL Server \ SDE/T \
От:
Аноним
Дата:
05.03.05 03:41
Оценка:
>Почему Майкрософт упорно отказавается встроить >IntelliSence/AutoComplete для SQL?
Полностью поддерживаю. Очень животрепещущий вопрос.
Вопросы по методологии ошибок.
1) Ошибка уровня 16 прерывает пакет команд, но может и не прерывать.
Пример
BEGIN TRY
SELECT * FROM MyTable
--RAISERROR ('Error Sample',16,1)END TRY
BEGIN CATCH
PRINT 'ERROR'
END CATCH
----------------------------- Msg 208, Level 16, State 1, Line 2
Invalid object name 'MyTable'.
Не помогает SEH, на который возлагались большие надежды (в этом случае нужно изолировать проблемный код в ХП или выполнять его с помощью sp_executesql, чтобы прерывание пакета не завершилось).
Вот другой пример, когда SEH действительно отработала
BEGIN TRY
--SELECT * FROM MyTableRAISERROR ('Error Sample',16,1)
END TRY
BEGIN CATCH
PRINT 'ERROR'
END CATCH
----------------------------------- ERROR
2) Тоже самое с директивой XACT_ABORT. Транзакция не откатывается при ошибках времени компиляции.
По каким причинам ядро не может отловить ошибки времени исполнения, ведь насколько мне известно — T-SQL полностью интерпретируемый диалект? Более того изолированный пакет отрабатывает нормально в общем пакете (относительно ошибок)
Пример:
CREATE PROC SelectTable AS SELECT * FROM MyTable
GO
BEGIN TRY
EXEC SelectTable
END TRY
BEGIN CATCH
PRINT'ERROR'END CATCH
-------------------------------------- Msg 208, Level 16, State 1, Procedure SelectTable, Line 1
Invalid object name 'MyTable'.
ERROR
Вообще все сюрпризы обработки ошибок похоже перешли в новые версии . Можете пояснить, почему так? Может быть я чего-то не заметил?
Здравствуйте, BlackTigerAP, Вы писали:
А>Насчет SIFT и Navision, судя по всему, я пролетаю (только не говорите, что не знаете, что это такое!)...
Неким аналогом SIFT'а в реляционных СУБД являются различного рода materialized view, которые появились в сиквеле еще в 7й версии.
А>Почему Майкрософт упорно отказавается встроить IntelliSence/AutoComplete для SQL?
Никто не отказывается, еще в PDC версии юкона SQL Manager вполне себе пытался его пользовать.
А>Вот сейчас запущен свеженький (февральский CTP) "SQL Express Manager".
Может проблема в том, что это Express Manager?
Мы уже победили, просто это еще не так заметно...
Re[2]: Вопросы для Григория Погульского \ SQL Server \ SDE/T
От:
Аноним
Дата:
05.03.05 17:00
Оценка:
Привет Григорий! Что за встроенный юзер такой INFORMATION_SCHEMA ? Как првильно писать sp_fkeys для тестовой базы?
Спасибо Михаил
Re[2]: Вопросы для Григория Погульского \ SQL Server \ SDE/T
От:
Аноним
Дата:
08.03.05 17:37
Оценка:
Здравствуйте, коллеги
Не так, чтобы я готов был ответить на все вопросы, просто давно не отвечал, так что надо как-то себя проявить. Поскольку настроение у меня сегодня философское, то позволю себе начать с "притчи".
Представьте себе кораблестроительный завод. На сием заводе некто занимается, ну скажем, установкой радио оборудования. И вот он получает письмо следующего содержания: " Уважаемый А, В нашей машине происходят странные стуки! Что ваше предприятие собирается делать по этому поводу?"
Теперь мои жалкие попытки ответить на некоторые вопросы.
Мне казалось, что Intellisense работает в Management Studio (не входит в экспресс).
Я не знаю, что такое SIFT, и я этого не скрываю...
Я сросил пару людей и написал в дискуссионный лист. Никто мне по сей день не ответил. Это, естественно, не означает, что никто этого не знает. Судя по всему, это не самая острая проблема сейчас в нашей организации. Допускаю, что данное кокретное название родилось совсем в другом месте и в другое время, так что оно не ассоциируется у местных людей с кокретной технологией. Ежели, паче чаяния, я что-нибудь услышу на эту тему, я дам вам знать.