Базы данных

Малоизвестные фичи MS SQL 2012

Базы данных Databases  /  Microsoft

Давно не смотрел на новые фичи MS SQL, а за последний месяц узнал несколько. Они далеко не ключевые, но их знание может пригодиться.

Если вы считаете, что:

  • для форматирования дат внутри SQL надо использовать CONVERT и DATEPART или подключать внешние функции;
  • можно воткнуть в таблицу множество столбцов [N]VARCHAR(MAX), всё равно они хранятся отдельно;
  • нельзя сделать в одной таблице два поля VARCHAR(5000) или можно, но нельзя в оба записать максимально длинные строки;

… читайте дальше.

Про баг в MSSQL 2000 и обратную совместимость

Базы данных  /  Внезапно Databases  /  Microsoft

Приходит как-то ко мне мой коллега Дима Писаренко и говорит — “есть вопрос по SQL, но это надо видеть”. И таки-да, это стоило увидеть :)

Как думаете, что возвращал подобный запрос (любое сходство с реальными данными случайно)?

SELECT name, B as A FROM (SELECT 'first' as name, 1 as A, 2 as B UNION SELECT 'second', 2, 1) T1 ORDER BY T1.A;

Новости от Microsoft

dotNET  /  Базы данных  /  Новости CSharp  /  Microsoft

Сегодня несколько новостей из мира Microsoft:

Проблемы с connection pool и уровнями изоляции транзакций

Базы данных  /  Внезапно dotNET  /  Databases  /  Microsoft

Продолжаю тему, начатую ранее про дырявые абстракции и TransactionScope. Сегодня ещё одна короткая заметка из категории “Внезапно” и снова про уровни изоляции.

Знаете ли вы, какой будет уровень изоляции, когда вы откроете соединение (для определённости — SqlConnection)? Вопрос с подвохом. Правильный ответ, как обычно — It depends.

MSSQL 2016 SP1 - теперь enterprise-фичи и в стандартных редакциях!

Базы данных Microsoft  /  Databases

Давно меня так не радовал Microsoft. И я не про новую студию и прочие плюшечки, и даже не про MSSQL on Linux , а про выход Microsoft SQL Server 2016 SP1. Они просто взяли и включили большинство enterprise-фич во все редакции MSSQL! Можете просто прочитать статью по ссылке, ниже табличка с фичами и ещё несколько слов о паре других интересных нововведений.

Внимание! TransactionScope по умолчанию включает Serializable.

Базы данных  /  Внезапно dotNET  /  CSharp

Сегодня о TransactionScope, уровне изоляции транзакций Serializable и дырявых абстракциях.

Вообще говоря, я раньше много раз сталкивался с распределёнными транзакциями. В какой-то момент я окончательно сформировал своё мнение по этой теме. Получилось что-то вроде: “хватит, я не буду их использовать вообще, разве что в ход со стороны оппонента пойдут огнестрельное оружие и прочие нечестные аргументы”.

По этой причине моё знакомство с TransactionScope свелось к его использованию в интеграционных тестах (без распределённой составляющей, просто для удобного отката транзакций) и редким спорам с коллегами. Но сегодня, внезапно…