Рубрика «T-SQL»

Transact-SQL

Разница между Rollup и Cube

Пересказ статьи Ben Richardson. The Difference Between Rollup and Cube Предложение GROUP BY используется для группировки результатов агрегатных функций по заданному столбцу. Однако предложение GROUP BY не выполняет операции агрегации на множестве уровней иерархии. Например, вы можете вычислить суммарную зарплату сотрудников для каждого отдела компании (один уровень иерархии), но не можете вычислить общую зарплату всех …

Как правильно использовать динамический SQL

Пересказ статьи Thom Andrews. Dos and Don’ts of Dynamic SQL Динамический SQL может быть невероятно мощным инструментом при надлежащем использовании, однако он может стать также невероятной прорехой в безопасности или привести к утомительной отладке при плохом написании. Ниже приводится несколько плохих и хороших примеров, которые помогут вам при написании динамических операторов.

Как пофиксить ошибку «Символьные или двоичные данные могут быть усечены»

Пересказ статьи Brent Ozar. How to fix the error “String or binary data would be truncated” Сначала давайте посмотрим на ошибку: создадим таблицу с небольшими полями, а затем попытаемся вставить больше данных, чем они могут вместить. CREATE TABLE dbo.CoolPeople(PersonName VARCHAR(20), PrimaryCar VARCHAR(20)); GO INSERT INTO dbo.CoolPeople(PersonName, PrimaryCar) VALUES (’Baby’, ‘2006 Subaru Impreza WRX GD’); GO …

Стоимость бесполезных суррогатных ключей в таблицах связей

Пересказ статьи lukaseder. The Cost of Useless Surrogate Keys in Relationship Tables Насколько хорош естественный ключ? Это очень сложный вопрос для большинства сущностей на этапе проектирования схемы. В некоторых редких случаях, кажется, имеется «очевидный» кандидат, обусловленный различными стандартами ISO, например:

Встраивание скалярных UDF в SQL Server 2019

Пересказ статьи Aaron Bertrand. Scalar UDF Inlining in SQL Server 2019 Скалярные UDF всегда были обоюдоострым мечом — они великолепны для тех разработчиков, кто стремится уйти от утомительной логики, а не повторять её от запроса к запросу. Но они же ужасно влияют на производительность в рабочей системе, поскольку оптимизатор не может обработать их надлежащим образом. …

Краткое введение в bcp

Пересказ статьи Arthur-Daniels. A brief introduction for bcp Я заканчиваю использование утилиты bcp перемещением таблиц между средами. При этом я нахожу, что множество руководств в интернет очень детально описывают её использование. Это прекрасно, если у вас много времени. Вот моё краткое введение. Я буду обращаться сюда, если забуду, как её использовать.

Разница между различными бинарными коллациями (языки, версии и BIN против BIN2)

Пересказ статьи Solomon Rutzky. Differences Between the Various Binary Collations (Cultures, Versions, and BIN vs BIN2) Бинарные коллации во многом проще для понимания, чем небинарные, поскольку они не имеют сложностей, связанных с национальными лингвистическими правилами. Они просто работают со значениями символов и тут нет места для чудес: все символы имеют базовые значения; если два символа …

Как и когда экранировать строки в T-SQL

Пересказ статьи Louis Davidson. How To, and Not To, Escape a String In TSQL Идея этого блога возникла из ошибок, которые я допускаю, исходя из неверных предположений. Читайте документацию, чтобы развеять ошибочные представления.

Как перевести первые буквы каждого слова предложения в верхний регистр?

Эта задача возникла как осмысленный пример для демонстрации использования скалярных функций, табличных переменных и новых возможностей языка T-SQL. Итак, требуется создать функцию, которая будет делать первую букву каждого слова заглавной, а остальные — строчными. Условия: Слова разделяются единичными пробелами. Количество слов произвольно. Алгоритм: Разбиваем фразу на отдельные слова, которые помещаем в табличную переменную. Делаем первую …