Наконец-то IntelliSence! Как же грустно было писать весь sql-код ручками, когда VisualStudio с Resharper'ом делают за тебя всю рутину, а редактор запросов в SQL 2005 больше похож на обыкновенный редактор текстов с подсветкой синтаксиса.
Лично для меня наиболее весомы следующие нововведения:
Интеллисенс в коде — наконец-то, а то без него было туго :)
Подробный аудит — недавно один из наших проектов долбили sql-инжектом — в результате была потерта одна табличка — было бы полезно узнать что и как произошло.
Ну и конечно как и комментатора выше, немножко напрягало делать свои обработчики времени и даты, в зависимости от потребностей задачи.
А я еще жду до сих пор нормальный и удобный постраничный вывод из таблицы, без костылей :(
От sql-инъекций помогают избавиться параметризованные запросы. Это не в обиду сказано, просто я не знаю путей успешного внедрения инъекций, если при обращении к базе используются параметризованные запросы.
За все надо платить, за подробный аудит вы заплатите заметным падением производительности, так что просто надо стараться писать код, так, чтобы избегать инъекций, как уже ниже писали (плюс если динамический sql все же нужен, то дополнительная проверка параметров). Но это даже не к MSSQL относится, а в принципе, к любой СУБД.
Я вообще не очень ползуюсь SQL Server'ами, но тут на доsуге пришлось поработать с 2005 и 2008ым. Не понял почему вместо удобного интерфэйса «view table» оставили только «select top 1000 rows»
Мне вот что понравилось, что они spatial данные ввели (geometry&geography). До этого надо было либо покупать за приличные деньги решения типа MapInfo Spatial, либо использовать опенсорсный проект с кодэплекса(который последний раз в феврале 2007го релизился и то, на версии 0.1.1).
Возможно я ошибаюсь, но чем больше проприетарных типов данных, тем сильнее привязка к конкретной БД. ИМХО лучше по возможности использовать универсальные. Хотя от проекта зависит, само собой.
уверяю вас, переходить от одной бд к другой в сколь либо крупном проекте очень тяжело и без типов данных
привязка к субд должна происходит еще на этапе планирования
и на нем же должны учитываться все и большинство фич и свойств текущей бд которые собственно и введены для ускорения, оптимизации и прочих улучшений процессов
можно приравнять субд к языку программирования на котором пишется проект.
никто в здравом уме не станет писать на с++ учитывая типы данных vb например…
Я скорее чесал затылок из-за того, что являюсь поклонником ORM-фреймворков, а там новые типы данных часто вызывают проблемы. Конечно, если сервис замкнут на единственную базу и выжимает максимум эффективности низкоуровневой работой — это другая ситуация.
ну врядли введение новых типов как-то ущемляет предыдущие версии фреймврорков
а новые версии уже будут их поддерживать
тоже самое было с VS 2008 она изначально не поддерживала MS SQL Server 2008 ни бету ни релиз
только потом с sp1 пришла поддержка и типов и редактирования объектов базы
а введение типо поддержки гео-данных — это гигантский шаг вперед
разработчики CAD и сервисов с гео-данными оценят
Ну условно, в MySQL выбрать 10 постов начиная с 11го будет «select * from posts limit 11, 10». Во многих наиболее распространённых RDBMS, такую операцию надо делать через изврат.
Все уже есть ещё в 2005
Называются функции ранжирование, и предоставляют они несравнимо больше свободы чем пресловутый limit.
RANK()
ROW_NUMBER()
DENSE_RANK ()
NTILE()
Замечательная статья, добавил кармы автору чуть-чуть.
Сам 2008й не пробовал, но вопрос (больной) есть: в 2005м в «Tasks -> Generate Scripts...» нельзя было выбрать в Script Behavior пункт «Generate the script as DROP statements followed by CREATE statements» (проверял на SQL2005+SP1). Есть ли это в 2008м?
SQL Server 2008: обзор нововведений