Skip to content

Хранимые процедуры SQL: входные и выходные параметры, типы, обработка ошибок и кое-что еще

Пересказ статьи Aubrey Love. SQL Stored Procedure Input and Output Parameters, Types, Error Handling, Security and more


Если вы слышали о хранимых процедурах в SQL Server, но точно не знаете, что это такое и как это использовать наилучшим образом, то эта статья даст вам необходимую информацию и позволит начать работать с хранимыми процедурами.

Здесь вы узнаете, что из себя представляет хранимая процедура, как ее создать и применить. Мы поговорим о параметрах хранимой процедуры, входных и выходных, и вкратце обсудим обработку ошибок и безопасность для хранимых процедур. Continue reading "Хранимые процедуры SQL: входные и выходные параметры, типы, обработка ошибок и кое-что еще"

Запрос к единственной таблице может использовать несколько индексов

Пересказ статьи Daniel Hutmacher. Querying a single table can use multiple indexes


Может ли SQL Server собрать вместе два различных индекса в запросе к единственной таблице, а не просто взять не вполне оптимальный кластеризованный индекс для сканирования? Короткий ответ - да, в довольно узком диапазоне условий. Continue reading "Запрос к единственной таблице может использовать несколько индексов"

Изменения языка T-SQL в SQL Server 2022. Часть 2

Пересказ статьи FrankDolan77. T-SQL Language Changes in SQL Server 2022 Part 2


Эта статья является второй частью, которая также посвящена изменениям в T-SQL, которые появились в этой новой версии платформы баз данных.

В предыдущей статье обсуждались DISTINCT FROM, DATE_BUCKET, GENERATE_SERIES, GREATEST/LEAST, STRING_SPLIT и DATETRUNC. Здесь я рассмотрю APPROX_PERCENTILE_CONT, APPROX_PERCENTILE_DISC и функции манипуляции битами. Будут рассмотрены также изменения в FIRST_VALUE, LAST_VALUE и LTRIM/RTRIM/TRIM.

Это поверхностный взгляд на эти функции языка, т.к я все еще экспериментирую, изучая их. Я оцениваю SQL Server 2022 с точки зрения перспективы апгрейда системы, поэтому основное внимание уделяется возможности этих изменений в языке сделать более простым написание кода. В моих экспериментах используется SQL Server 2022 RC0.

Continue reading "Изменения языка T-SQL в SQL Server 2022. Часть 2"

Вызов исключений и обработка ошибок с помощью THROW в SQL Server

Пересказ статьи Jared Westover. Raising Exceptions and Error Handling with SQL Server THROW


Рассматривали ли вы возможность добавления обработки ошибок в код Transact-SQL (T-SQL)? Если вы спросите опытных разработчиков, большинство из них согласится с тем, что это хорошая идея. Возможно, вам достался по наследству далеко не идеальный код. Или ваш код можно было бы немного привести в порядок. Основной причиной для добавления обработки ошибок является управление возникновением исключений. Было бы прекрасно, если бы ошибки не возникали, но такой мир не существует. Есть пара способов для вызова исключений в T-SQL. Более старый метод - это с использованием RAISERROR. Теперь RAISERROR все еще используется, но, начиная с SQL Server 2012 в городе появился новый игрок, которого зовут THROW.
Continue reading "Вызов исключений и обработка ошибок с помощью THROW в SQL Server "

Удалить все таблицы в SQL Server и сгенерировать список объектов на удаление

Пересказ статьи Aubrey Love. Drop All Tables in SQL Server and Generate a List of Objects to Drop


Проблема


Я создал 5 таблиц, 15 представлений и четыре хранимых процедуры в тестовой среде Microsoft SQL Server. Когда я завершил тестирование, то перенес все в рабочую среду. Теперь мне нужно удалить все объекты тестового SQL Server для подготовки следующего проекта.

Я знаю, что могу создать несколько скриптов SQL Server (DROP TABLE, DROP VIEW и DROP PROC), но необходимо ли делать это для каждого из 24 объектов. Как мне удалить все эти объекты более эффективно?
Continue reading "Удалить все таблицы в SQL Server и сгенерировать список объектов на удаление"

Функциональность или производительность?

Пересказ статьи Grant Fritchey. FUNCTION VS. PERFORMANCE


Недавно я просматривал DBA.StackExchange, когда увидел довольно простой вопрос, на который я решил ответить. Я вышел, установил тестовую базу данных, создал некоторые таблицы для тестирования и быстро написал запрос для ответа на вопрос. Пока я его форматировал для публикации, увидел, что был уже дан другой ответ.

Да, идентичный моему. Почти строка в строку.

Ну, почти.

Я понимаю, что буду писать статью в блог. Continue reading "Функциональность или производительность?"