<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>SQL-Ex blog - T-SQL</title>
    <link>https://sql-ex.ru/blogs/</link>
    <description>Новости сайта &quot;Упражнения SQL&quot;, статьи и переводы</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.3.5 - http://www.s9y.org/</generator>
    <pubDate>Fri, 13 Mar 2026 05:40:00 GMT</pubDate>

    <image>
    <url>https://sql-ex.ru/images/logo.jpg</url>
    <title>RSS: SQL-Ex blog - T-SQL - Новости сайта &quot;Упражнения SQL&quot;, статьи и переводы</title>
    <link>https://sql-ex.ru/blogs/</link>
    <width></width>
    <height></height>
</image>

<item>
    <title>T-SQL в SQL Server 2025: нечеткий поиск строки II</title>
    <link>https://sql-ex.ru/blogs/?/T-SQL-SQL-Server-2025-II.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/T-SQL-SQL-Server-2025-II.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3325</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3325</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlservercentral.com/articles/t-sql-in-sql-server-2025-fuzzy-string-search-ii&quot;&gt;Steve Jones. T-SQL in SQL Server 2025: Fuzzy String Search II&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
В &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.sqlservercentral.com/articles/t-sql-in-sql-server-2025-the-string-similarity-functions&quot;&gt;последней статье&lt;/a&gt; мы проверяли нечеткое соответствие строк при помощи новых функций в SQL Server 2025. Мы знаем, что сравнение строк всегда вызывало сложности, когда у нас нет качественных данных. Если нам нужно точное совпадение, SQL Server работает отлично. Однако мы часто ждем от пользователей ввода значений без опечаток и знать, какие значения они хотят найти. Или хотя бы знать часть строки.&lt;br /&gt;
&lt;br /&gt;
В SQL Server 2025 появилось несколько новых функций, которые помогают с нечетким совпадением строк. В последней статье были рассмотрены функции расстояния, EDIT_DISTANCE() и EDIT_DISTANCE_SIMILARITY(). В этой статье мы проверим две другие функции, JARO_WINKLER_DISTANCE() и JARO_WINKLER_SIMILARITY(). Как и другие функции, они находятся в предварительной версии (по состоянию на январь 2026 г.), так что будьте осторожны с использованием их в продакшене. Вам также необходимо включить эти функции как часть конфигурации области базы данных. Мы рассмотрели это в первой статье. &lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Это часть серии статей, посвященной тому, как язык T-SQL развивается в SQL Server 2025. &lt;br /&gt;
&lt;br /&gt;
Примечание. Некоторые из этих изменений уже доступны в различных продуктах Azure SQL.&lt;/em&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/T-SQL-SQL-Server-2025-II.html#extended&quot;&gt;Continue reading &quot;T-SQL в SQL Server 2025: нечеткий поиск строки II&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 13 Mar 2026 08:40:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3325.html</guid>
    
</item>
<item>
    <title>Общие проблемы в SQL Server: Invalid Length</title>
    <link>https://sql-ex.ru/blogs/?/SQL-Server-Invalid-Length.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/SQL-Server-Invalid-Length.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3323</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3323</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.red-gate.com/simple-talk/databases/sql-server/common-sql-server-problems-invalid-length/&quot;&gt;Aaron Bertrand. Common SQL Server Problems: Invalid Length&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Это еще одна часть моей &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.red-gate.com/simple-talk/collections/common-issues-in-sql-server/&quot;&gt;серии&lt;/a&gt;, представляющей общие проблемы в SQL Server. Сейчас мы поговорим о самой распространенной ошибке: invalid length (неверная длина).&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Что означает ошибка invalid length в SQL Server?  &lt;/h2&gt;&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;Msg 537, Level 16, State 3&lt;br /&gt;
Invalid length parameter passed to the LEFT or SUBSTRING function.&lt;/pre&gt;&lt;br /&gt;
Как показано выше, ошибка invalid length возникает, когда вы передаете некорректный или неожиданный параметр в &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://sql-tutorial.ru/ru/book/second_phase_of_testing/transact_sql_string_datetime_functions/string_functions_in_sql_server/&quot;&gt;строковую функцию&lt;/a&gt;. Например:&lt;br /&gt;
&lt;br /&gt;
&lt;pre lang=&quot;sql&quot;&gt;DECLARE @FirstName nvarchar(32) = N&#039;frank&#039;;&lt;br /&gt;
SELECT LEFT(@FirstName, -1);&lt;/pre&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/SQL-Server-Invalid-Length.html#extended&quot;&gt;Continue reading &quot;Общие проблемы в SQL Server: Invalid Length&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 09 Mar 2026 15:48:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3323.html</guid>
    
</item>
<item>
    <title>Таблицы UNLOGGED в PostgreSQL: когда скорость важнее надежности</title>
    <link>https://sql-ex.ru/blogs/?/UNLOGGED-PostgreSQL.html</link>
            <category>PostgreSQL</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/UNLOGGED-PostgreSQL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3320</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3320</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlservercentral.com/articles/unlogged-tables-in-postgresql-when-speed-matters-more-than-durability&quot;&gt;Chandan Shukla. UNLOGGED Tables in PostgreSQL When Speed Matters More Than Durability&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;h2&gt;Введение&lt;/h2&gt;&lt;br /&gt;
Каждая реляционная база данных живет и умирает благодаря своему журналу транзакций. В SQL Server это файл журнала транзакций, в PostgreSQL это WAL (Write-Ahead Log - записывай сначала в журнал). Это работающее сердце, которое гарантирует надежность хранения, восстановление и репликацию. Без журнала вы не смогли бы обеспечить согласованность после сбоя, восстановить базу к определенному моменту времени или иметь надежные реплики.&lt;br /&gt;
&lt;br /&gt;
Поэтому идея отказа от журнализации звучит почти безумно. Почему кому-то в здравом уме захочется избежать журнализации?&lt;br /&gt;
&lt;br /&gt;
PostgreSQL дает вам именно такую возможность посредством таблиц UNLOGGED (нежурнализируемых). Это функция, которая меняет сценарий: таблица по-прежнему сохраняется на диске, но ее записи не попадают в WAL. Это означает существенно меньше накладных расходов, зачастую значительно более быстрые массовые операции, но при большом недостатке - ненадежность при сбоях базы данных.&lt;br /&gt;
&lt;br /&gt;
Для администраторов SQL Server это кажется странным. У нас нет подобной функции «один в один». Вы можете подумать о BULK INSERT с минимальной журнализацией, временных таблицах в tempdb или даже об оптимизированных для памяти таблицах SCHEMA_ONLY. Каждый из этих случаев имеет кусочек от поведения UNLOGGED, но не все целиком.&lt;br /&gt;
&lt;br /&gt;
В этой статье мы подробно рассмотрим таблицы UNLOGGED, зачем они нужны, как их можно использовать и о том, что позволяет отнести их к категории «специальных инструментов».&lt;br /&gt;
&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/UNLOGGED-PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Таблицы UNLOGGED в PostgreSQL: когда скорость важнее надежности&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 04 Mar 2026 08:50:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3320.html</guid>
    
</item>
<item>
    <title>Теория множеств и пакетный режим в SQL Server</title>
    <link>https://sql-ex.ru/blogs/?/SQL-Server.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3319</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3319</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlservercentral.com/blogs/set-theory-vs-batch-mode-in-sql-server&quot;&gt;SQLPals. Set Theory vs. Batch Mode in SQL Server&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Не так давно коллега был в совершенном шоке, когда впервые услышал о возможности пакетного режима в SQL Server. Его мгновенной реакцией было: &quot;Стой, но SQL основан на теории множеств. Не означает ли это, что он уже все обрабатывает как множество, а не построчно?&quot;&lt;br /&gt;
&lt;br /&gt;
Это действительно довольно общее представление, и на первый взгляд это имеет смысл. Кроме того, люди часто представляют силу реляционных баз данных в том, что они &quot;обрабатывают множества данных за один прием&quot;. Однако есть нюансы. Давайте проясним ситуацию. &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/SQL-Server.html#extended&quot;&gt;Continue reading &quot;Теория множеств и пакетный режим в SQL Server&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 01 Mar 2026 23:52:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3319.html</guid>
    
</item>
<item>
    <title>Предложение VALUES или создание таблиц из ничего</title>
    <link>https://sql-ex.ru/blogs/?/VALUES.html</link>
            <category>MySQL</category>
            <category>Optimization</category>
            <category>Oracle</category>
            <category>PostgreSQL</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/VALUES.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3308</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3308</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://www.red-gate.com/simple-talk/author/joe-celko/&quot;&gt;Joe Celko&lt;/a&gt;, &lt;a href=&quot;https://www.red-gate.com/simple-talk/databases/theory-and-design/values-clause-building-tables-out-nothing/&quot;&gt;The VALUES clause or building tables out of nothing&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Предложение VALUES, вероятно, одна из самых неправильно используемых возможностей в SQL. Если вы посмотрите на онлайн-форумы по SQL, вы увидите, что люди используют его как второе предложение в операторе вставки, но используют его для построения только одной строки за раз, например так:&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;BEGIN&lt;br /&gt;
INSERT INTO Zodiac (astro_sign, astro_start_date, astro_end_date)&lt;br /&gt;
 VALUES (&#039;Aries&#039;, &#039;2025-03-21&#039;, &#039;2025-04-19&#039;);&lt;br /&gt;
INSERT INTO Zodiac (astro_sign, astro_start_date, astro_end_date)&lt;br /&gt;
 VALUES (&#039;Taurus&#039;, &#039;2025-04-20&#039;, &#039;2025-05-20&#039;);&lt;br /&gt;
… &lt;br /&gt;
INSERT INTO Zodiac (astro_sign, astro_start_date, astro_end_date)&lt;br /&gt;
 VALUES (&#039;Pisces&#039;, &#039;2023-05-19&#039;, &#039;2026-03-20&#039;);&lt;br /&gt;
END;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Каждый оператор вставки заканчивается точкой с запятой, поэтому они будут выполняться отдельно и в представленном порядке. Оптимизатор не осмеливается их объединять, потому что может быть прямая ссылка на предыдущие вставки.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Я думаю, люди пишут такой код, потому что именно так вы бы читали перфокарты. Каждая карта поступает в устройство чтения карт, буферизуется и записывается в порядке поступления на магнитную ленту или дисковый файл. Добро пожаловать в 1960-е! Перестаньте подражать старым языкам программирования, таким как FORTRAN или BASIC, в которых были операторы WRITE, помещающие по одной записи за раз в файл. Начните думать о работе с целыми множествами.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/VALUES.html#extended&quot;&gt;Continue reading &quot;Предложение VALUES или создание таблиц из ничего&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 16 Feb 2026 18:08:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3308.html</guid>
    
</item>
<item>
    <title>T-SQL в SQL Server 2025: конкатенация строк</title>
    <link>https://sql-ex.ru/blogs/?/T-SQL-SQL-Server-2025.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/T-SQL-SQL-Server-2025.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3304</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3304</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlservercentral.com/articles/t-sql-in-sql-server-2025-concatenating-strings&quot;&gt;Steve Jones. T-SQL in SQL Server 2025: Concatenating Strings&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Как и многие из вас, я часто соединяю строки (конкатенирую) при помощи простого арифметического оператора +. У нас есть еще и другие способы соединения строк, но в SQL Server 2025 появился еще один новый оператор. Это &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://learn.microsoft.com/en-us/sql/t-sql/language-elements/string-concatenation-pipes-transact-sql?view=sql-server-ver17&quot;&gt;оператор двойной трубы (||)&lt;/a&gt;. В этой статье мы разберемся, как он работает, и сравним с другими вариантами.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Новый оператор&lt;/h2&gt;&lt;br /&gt;
Он действительно документирован, хотя и после || в MS Learn. Идея состоит в том, что соединяться будут: &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/T-SQL-SQL-Server-2025.html#extended&quot;&gt;Continue reading &quot;T-SQL в SQL Server 2025: конкатенация строк&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 13 Feb 2026 10:06:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3304.html</guid>
    
</item>
<item>
    <title>Эффективные стратегии для хранения и парсинга JSON в SQL Server</title>
    <link>https://sql-ex.ru/blogs/?/JSON-SQL-Server.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/JSON-SQL-Server.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3300</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3300</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/effective-strategies-for-storing-and-parsing-json-in-sql-server/&quot;&gt;Edward Pollack. Effective Strategies for Storing and Parsing JSON in SQL Server&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Подобно XML, JSON является открытым стандартным форматом хранения данных, метаданных, параметров или других неструктурированных или полуструктурированных данных. Из-за его активного использования в современных приложениях он обречен попасть в базы данных, где его необходимо будет хранить, сжимать, изменять, выполнять поиск и извлекать. &lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что реляционные базы данных не являются идеальным местом для хранения и управления мало структурированными данными, требования, предъявляемые приложениями, могут зачастую преодолевать &quot;оптимальный&quot; проект базы данных. Это удобно иметь данные JSON рядом со связанными с ними реляционными данными и эффективная организация хранилища с самого начала может сэкономить значительное время и ресурсы в будущем. &lt;br /&gt;
&lt;br /&gt;
Эта статья посвящена тому, как хранится JSON в SQL Server и разным способам, с помощью которых он записывается, читается и обслуживается. &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/JSON-SQL-Server.html#extended&quot;&gt;Continue reading &quot;Эффективные стратегии для хранения и парсинга JSON в SQL Server&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 08 Feb 2026 23:37:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3300.html</guid>
    
</item>
<item>
    <title>Значение NULL и пустая строка в Oracle, SQL Server и PostgreSQL</title>
    <link>https://sql-ex.ru/blogs/?/NULL-Oracle,-SQL-Server-PostgreSQL.html</link>
            <category>Oracle</category>
            <category>PostgreSQL</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/NULL-Oracle,-SQL-Server-PostgreSQL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3299</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3299</wfw:commentRss>
    

    <author>nospam@example.com (mssqlhelp)</author>
    <content:encoded>
    &lt;p&gt;Автор: &lt;a href=&quot;https://hexacluster.ai/blog/author/akhil-reddy-banappagari&quot;&gt;Akhil Reddy Banappagari&lt;/a&gt;, &lt;a href=&quot;https://hexacluster.ai/blog/null-and-empty-string-in-oracle-vs-sql-server-vs-postgresql&quot;&gt;Null and Empty String in Oracle vs SQL Server vs PostgreSQL&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;При планировании &lt;a href=&quot;https://hexacluster.ai/database-migration-to-postgresql&quot;&gt;миграции баз данных в PostgreSQL&lt;/a&gt; именно мелочи часто становятся причиной самых серьёзных сбоев в рабочей среде. Одна из самых распространённых ловушек для разработчиков — это различная обработка значений &lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;NULL&lt;/span&gt;&lt;/code&gt; и пустых строк (&lt;code&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;/code&gt;) в разных СУБД.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Хотя они могут казаться схожими концепциями, обозначающими отсутствие значения, то, как механизм базы данных их интерпретирует, может изменить результаты ваших запросов, нарушить уникальные ограничения или привести к сбоям загрузки данных. В этом руководстве мы сравним поведение &lt;a href=&quot;https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/Nulls.html&quot;&gt;Oracle&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/sql/t-sql/language-elements/null-and-unknown-transact-sql?view=sql-server-ver17&quot;&gt;SQL Server&lt;/a&gt; и &lt;a href=&quot;https://www.postgresql.org/&quot;&gt;PostgreSQL&lt;/a&gt;, чтобы помочь вам избежать распространённых ошибок миграции.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img class= src=&quot;https://sql-ex.ru/blogs/uploads/null_vs_empty_string_ora_mssql_pg-1.png&quot;&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/NULL-Oracle,-SQL-Server-PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Значение NULL и пустая строка в Oracle, SQL Server и PostgreSQL&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 06 Feb 2026 18:36:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3299.html</guid>
    
</item>
<item>
    <title>Проблема неявных транзакций</title>
    <link>https://sql-ex.ru/blogs/?/unknown.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/unknown.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3293</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3293</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlservercentral.com/blogs/the-challenge-of-implicit-transactions-sqlnewblogger&quot;&gt;Steve Jones. The Challenge of Implicit Transactions&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;h2&gt;Сценарий&lt;/h2&gt;&lt;br /&gt;
Вы выполняете такой код:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;https://sql-ex.ru/blogs/wp-content/uploads/2026/02/implicit_trans_1.webp&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Все выглядит хорошо. Я выполнил вставку и вижу данные в таблице. Я тороплюсь, поэтому щелкаю &quot;close&quot; (закрыть) на вкладке и вижу это:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;https://sql-ex.ru/blogs/wp-content/uploads/2026/02/implicit_trans_2.webp&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Я настолько привык к этим раздражающим меня сообщениям в SSMS, что я нажимаю «Нет», чтобы избавиться от них и закрыть окно.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/unknown.html#extended&quot;&gt;Continue reading &quot;Проблема неявных транзакций&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 01 Feb 2026 11:16:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3293.html</guid>
    
</item>
<item>
    <title>Подводные камни Truncate Table</title>
    <link>https://sql-ex.ru/blogs/?/Truncate-Table.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/Truncate-Table.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3289</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3289</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.sqlservercentral.com/blogs/4667641&quot;&gt;Peter Skoglund. Truncate Table Pitfalls&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Усечение таблицы может быть замечательно быстрым - и чрезвычайно опасным при неосмотрительном использовании. Если вы хотите иметь скорость и не разочароваться, тут дается практическое, готовое для интервью руководство по реальным подводным камням TRUNCATE TABLE в SQL Server и то, как избежать их.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Справка&lt;/h2&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;TRUNCATE TABLE является операцией DDL, которая &lt;strong&gt;освобождает страницы&lt;/strong&gt; (эффективно журнализированные) и &lt;strong&gt;сбрасывает IDENTITY&lt;/strong&gt; к начальному значению. При этом &lt;strong&gt;триггеры DELETE не срабатывают&lt;/strong&gt;. &lt;strong&gt;Возможен&lt;/strong&gt; откат при выполнении внутри транзакции.&lt;/li&gt; &lt;br /&gt;
&lt;li&gt;&lt;strong&gt;Завершается неудачно&lt;/strong&gt;, если на таблицу &lt;strong&gt;ссылается внешний ключ&lt;/strong&gt; (даже если дочерняя таблица пуста), используется в &lt;strong&gt;индексированных представлениях&lt;/strong&gt;, является &lt;strong&gt;системно-версионной (временной), опубликованной для репликации&lt;/strong&gt; или включена для CDC, или на нее ссылается &lt;strong&gt;ограничение EDGE графа&lt;/strong&gt;. Существует специальная возможность для самоссылающихся внешних ключей.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Начиная с &lt;strong&gt;SQL Server 2016&lt;/strong&gt;, вы можете &lt;strong&gt;усекать конкретные секции&lt;/strong&gt;: TRUNCATE TABLE dbo.Fact WITH (PARTITIONS (4 TO 6)); (индексы должны быть выровнены).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/Truncate-Table.html#extended&quot;&gt;Continue reading &quot;Подводные камни Truncate Table&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 27 Jan 2026 09:41:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3289.html</guid>
    
</item>
<item>
    <title>Массовая вставка T‑SQL или OPENROWSET: импорт CSV, проблемы доступа к файлам и скрипт PowerShell</title>
    <link>https://sql-ex.ru/blogs/?/TSQL-OPENROWSET-CSV,-PowerShell.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/TSQL-OPENROWSET-CSV,-PowerShell.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3281</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3281</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.mssqltips.com/sqlservertip/11498/sql-bulk-insert-and-openrowset/&quot;&gt;Rick Dobson. T‑SQL BULK INSERT vs OPENROWSET: CSV Imports, File Access Gotchas, and A PowerShell Script&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Большинство руководств по массовой вставке SQL и SQL Server openrowset игнорируют проблемы доступа к файлам, которые могут прервать импорт. И оператор bulk insert, и функция openrowset выполняются под аккаунтом службы SQL Server при чтении файла источника. Аккаунт службы SQL Server должен иметь разрешение на чтение файла или папки, где файл находится. Также удобно иметь разрешения на чтение и выполнение, а также вывод содержимого папки. Кроме того, нестандартные места размещения файла источника (например, C:\Users\Public\Downloads) могут не предоставлять доступ на чтение по умолчанию аккаунту службы SQL Server - всегда проверяйте это перед использованием.&lt;br /&gt;
&lt;br /&gt;
Импорт данных из файла источника в таблицу SQL Server является обычной операцией, но она озадачивает многих новичков и порой вызывает трудности даже у опытных разработчиков в сложных сценариях. В этой статье изучается импорт файлов CSV в таблицы SQL Server либо с помощью оператора BULK INSERT, либо функции openrowset в операторе SELECT. &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/TSQL-OPENROWSET-CSV,-PowerShell.html#extended&quot;&gt;Continue reading &quot;Массовая вставка T‑SQL или OPENROWSET: импорт CSV, проблемы доступа к файлам и скрипт PowerShell&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 18 Jan 2026 16:43:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3281.html</guid>
    
</item>
<item>
    <title>Что использовать: VARCHAR или NVARCHAR?</title>
    <link>https://sql-ex.ru/blogs/?/VARCHAR-NVARCHAR.html</link>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/VARCHAR-NVARCHAR.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3266</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3266</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.brentozar.com/archive/2025/10/which-should-you-use-varchar-or-nvarchar/&quot;&gt;Brent Ozar. Which Should You Use VARCHAR or NVARCHAR?&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
Вы строите новую таблицу или добавляете столбец, и вы хотите знать, какой тип данных использовать: VARCHAR или NVARCHAR?&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо хранить данные Unicode, выбор сделан за вас: NVARCHAR говорит, что &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=GQMlWwIXg3M&quot;&gt;это буду я&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Но если вы не уверены, то можете подумать: &quot;Я должен использовать VARCHAR, поскольку он занимает вдвое меньше места&quot;. Я это знаю, потому что чувствовал то же самое, но множество комментаторов указали мне на это, когда я опубликовал ответ в «Office Hours» о том, что по умолчанию я использую VARCHAR. Один за другим разработчики говорили мне, что я неправ и что в 2025 пришло время вместо этого по умолчанию использовать NVARCHAR. Давайте проведем эксперимент!&lt;br /&gt;
&lt;br /&gt;
Чтобы выяснить это, давайте возьмем большую базу данных &lt;a class=&quot;let&quot; target=&quot;_blank&quot; href=&quot;https://www.brentozar.com/archive/2015/10/how-to-download-the-stack-overflow-database-via-bittorrent/&quot;&gt;Stack Overflow&lt;/a&gt; и создадим две копии таблицы Users. Я использую здесь таблицу Users, чтобы сделать демонстрацию краткой и понятной, поскольку у меня нет возможности целый день загружать гигабайты данных (и перезагружаться, как вы сейчас увидите). Мы просто собираемся сфокусироваться на строковых столбцах, поэтому я создал одну с типами VARCHAR, а другую - с NVARCHAR. Затем для простоты мы загрузим только те данные, которые являются чисто VARCHAR (потому что некоторые чудаки могли добавить какие-нибудь необычные данные Unicode в столбец AboutMe).&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/VARCHAR-NVARCHAR.html#extended&quot;&gt;Continue reading &quot;Что использовать: VARCHAR или NVARCHAR?&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 22 Dec 2025 19:20:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3266.html</guid>
    
</item>
<item>
    <title>Сравнение перестройки и реорганизации индексов SQL</title>
    <link>https://sql-ex.ru/blogs/?/SQL.html</link>
            <category>Optimization</category>
            <category>T-SQL</category>
    
    <comments>https://sql-ex.ru/blogs/?/SQL.html#comments</comments>
    <wfw:comment>https://sql-ex.ru/blogs/wfwcomment.php?cid=3263</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://sql-ex.ru/blogs/rss.php?version=2.0&amp;type=comments&amp;cid=3263</wfw:commentRss>
    

    <author>nospam@example.com (Sergey Moiseenko)</author>
    <content:encoded>
    &lt;p style=&quot;margin: 0px 25px; font-size: 9pt;&quot;&gt;Пересказ статьи &lt;a class=&quot;let&quot; href=&quot;https://www.mssqltips.com/sqlservertip/8063/sql-index-rebuild-vs-reorganize-comparison/&quot;&gt;Sergey Gigoyan. SQL Index Rebuild vs Reorganize Comparison&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
При модификации данных в базе данных SQL соответствующие индексы тоже изменяются. Эти изменения приводят к фрагментации индексов. Фрагментация означает, что логический порядок данных на страницах индекса не соответствует физическому порядку. Во фрагментированных индексах информация не располагается логически, что делает операции извлечения данных из индекса более затратными по времени, это приводит к проблемам производительности запросов. Таким образом, фрагментацию индексов следует периодически устранять для поддержания высокой производительности. Операции перестройки и реорганизации индекса как раз направлены на дефрагментацию индексов.&lt;br /&gt;
&lt;br /&gt;
В данной статье мы рассмотрим то, что является общим и различным в этих операциях. Прежде чем начать, мы объясним некоторые важные связанные с ними понятия. В частности, ту информацию, которая стоит за коэффициентом заполнения и статистикой, т.к. эти понятия упоминаются при обсуждении операций по перестроению и реорганизации индекса.&lt;br /&gt;
&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://sql-ex.ru/blogs/?/SQL.html#extended&quot;&gt;Continue reading &quot;Сравнение перестройки и реорганизации индексов SQL&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 17 Dec 2025 23:10:00 +0300</pubDate>
    <guid isPermaLink="false">https://sql-ex.ru/blogs/?/3263.html</guid>
    
</item>

</channel>
</rss>
