Как стать автором
Обновить

Комментарии 44

немного запоздало, зато очень подробно
автор — молодец, интересный пост
Сжатие бекапов — наконец-то!
не для всех, так что постаринке ;)
Наконец-то IntelliSence! Как же грустно было писать весь sql-код ручками, когда VisualStudio с Resharper'ом делают за тебя всю рутину, а редактор запросов в SQL 2005 больше похож на обыкновенный редактор текстов с подсветкой синтаксиса.
sql prompt or redgate — уже много лет пользуюсь, без уже почти не могу :)
Именно из-за таких развернутых обзоров я и люблю читать Хабр! Сразу видно: что, куда, откуда и зачем это нужно.
Автор, спасибо!
Большое спасибо.
Наконецто поддержка даты с offset-ом. А то это приходилось ручками каждый раз имплементировать. FileStream тоже весч, не надо делать из DB помойку.
Учтите что FileStream нужно явно при установке SQL Server разрешать.
А также говорить, что да, использовать FileStream в T-SQL.



или после установки командой:
exec [sp_filestream_configure] @enable_level = 3;

А потом при создании БД.

Почитать подробнее
Лично для меня наиболее весомы следующие нововведения:
Интеллисенс в коде — наконец-то, а то без него было туго :)
Подробный аудит — недавно один из наших проектов долбили sql-инжектом — в результате была потерта одна табличка — было бы полезно узнать что и как произошло.
Ну и конечно как и комментатора выше, немножко напрягало делать свои обработчики времени и даты, в зависимости от потребностей задачи.
А я еще жду до сих пор нормальный и удобный постраничный вывод из таблицы, без костылей :(
От sql-инъекций помогают избавиться параметризованные запросы. Это не в обиду сказано, просто я не знаю путей успешного внедрения инъекций, если при обращении к базе используются параметризованные запросы.
Как вариант если внутри процедуры пришлось в каких либо местах использовать
«Динамичный SQL»…, такое бывает но редко.
За все надо платить, за подробный аудит вы заплатите заметным падением производительности, так что просто надо стараться писать код, так, чтобы избегать инъекций, как уже ниже писали (плюс если динамический sql все же нужен, то дополнительная проверка параметров). Но это даже не к MSSQL относится, а в принципе, к любой СУБД.
Я вообще не очень ползуюсь SQL Server'ами, но тут на доsуге пришлось поработать с 2005 и 2008ым. Не понял почему вместо удобного интерфэйса «view table» оставили только «select top 1000 rows»
Не «View Table», а «Open Table», впрочем неважно…

Есть подозрение для того что если больше 1000 строк хочется посмотреть,
то человек сам запрос напишет…

А если человек новичок то не будет загружать сервер запросом на выборку миллиарда строк…

Имхо…
(в случаях если конечно, если администратор не установил политику на такие долгоиграющие и
«стоящие» запросы)
Ну в принципе согласен, ну раз уж было, могли бы и оставить.

Мне вот что понравилось, что они spatial данные ввели (geometry&geography). До этого надо было либо покупать за приличные деньги решения типа MapInfo Spatial, либо использовать опенсорсный проект с кодэплекса(который последний раз в феврале 2007го релизился и то, на версии 0.1.1).
Возможно я ошибаюсь, но чем больше проприетарных типов данных, тем сильнее привязка к конкретной БД. ИМХО лучше по возможности использовать универсальные. Хотя от проекта зависит, само собой.
Вроде бы MS SQL Spatial соответствует стандарту, так что… Конечно это для специфических, ГИС, приложений, но это большой шаг.
уверяю вас, переходить от одной бд к другой в сколь либо крупном проекте очень тяжело и без типов данных
привязка к субд должна происходит еще на этапе планирования
и на нем же должны учитываться все и большинство фич и свойств текущей бд которые собственно и введены для ускорения, оптимизации и прочих улучшений процессов

можно приравнять субд к языку программирования на котором пишется проект.
никто в здравом уме не станет писать на с++ учитывая типы данных vb например…
Я скорее чесал затылок из-за того, что являюсь поклонником ORM-фреймворков, а там новые типы данных часто вызывают проблемы. Конечно, если сервис замкнут на единственную базу и выжимает максимум эффективности низкоуровневой работой — это другая ситуация.
ну врядли введение новых типов как-то ущемляет предыдущие версии фреймврорков
а новые версии уже будут их поддерживать
тоже самое было с VS 2008 она изначально не поддерживала MS SQL Server 2008 ни бету ни релиз
только потом с sp1 пришла поддержка и типов и редактирования объектов базы

а введение типо поддержки гео-данных — это гигантский шаг вперед
разработчики CAD и сервисов с гео-данными оценят
что за «лимит»?
Ну условно, в MySQL выбрать 10 постов начиная с 11го будет «select * from posts limit 11, 10». Во многих наиболее распространённых RDBMS, такую операцию надо делать через изврат.
Лимит — не модно :) Он вообще есть где-нибудь окромя MySQL?
Наверно и нет.
Я по крайней мере не видел.
И не надо. С ним люди таких мостров плодят.
Потом не разберешься.
Согласен.
Но для себя для быстрого пэйджинга удобно было бы =)
Все уже есть ещё в 2005
Называются функции ранжирование, и предоставляют они несравнимо больше свободы чем пресловутый limit.
RANK()
ROW_NUMBER()
DENSE_RANK ()
NTILE()
Хм.
Спасибо, пойду 2005й BOL почитаю тогда.
Полезная, но очень много ограничений,
Полезность в том, что

1) можно сделать кол-во колонок больше 1024,
2) более эффективно использовать место на жестком диске.
Замечательная статья, добавил кармы автору чуть-чуть.

Сам 2008й не пробовал, но вопрос (больной) есть: в 2005м в «Tasks -> Generate Scripts...» нельзя было выбрать в Script Behavior пункт «Generate the script as DROP statements followed by CREATE statements» (проверял на SQL2005+SP1). Есть ли это в 2008м?
Такого не увидел, а то что при генерации скриптов можно автоматически дропать обьекты — это есть:

IntelliSence и таблицы в виде параметров функций.
Ради этого можно переходить на 2008.

Не нашел в обзоре ничего про версионность/блокирование данных при запросах.
Что-нибудь в алгоритмах поменялось? Или как в 2005 все?
Как это мило, компании Sybase уделили одну строчку. Есть мнение, что вклад компании Sybase в создании MS SQL Server был гораздо больше.
Если бы темой топика была «История SQL Server» то написал бы несомненно больше, извините если что…
Интересно, они пагинацию в SELECT таки сделали? Т.е. чтобы можно было выбрать записи с 10 по 20, например.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.