Подтвердить что ты не робот

Есть ли замена Transact-SQL

Впервые за многие годы я занимался программированием T-SQL в SQL Server 2008 и забыл, насколько плохой язык на самом деле:

  • Управление потоком (все начальные/конечные элементы) чувствует себя неуклюжим.
  • Обработка исключений оставляет желать лучшего. Исключения не пузырьки так же, как на любом другом языке. Там нет повторного метания, если вы не закодируете его самостоятельно, а функция raiserror не написана правильно (это вызвало у меня некоторые головные боли!)
  • Обработка строк плохо.
  • Единственный тип последовательности - это таблица. Я должен был написать функцию для разделения строки на основе разделителя и должен был хранить ее в таблице, в которой были строковые части, а также значение, указывающее на положение в последовательности.
  • Если вам нужно выполнить поиск в хранимой процедуре, то манипулирование результатами будет болезненным. Вы либо должны использовать курсоры, либо взломать цикл while с вложенным поиском, если результаты содержат какой-то столбец упорядочения

Я понимаю, что я мог бы кодировать свои хранимые процедуры с помощью С#, но для этого потребуется разрешить серверу разрешать функции CLR, что не является вариантом на моем рабочем месте.

Кто-нибудь знает, есть ли какие-либо альтернативы T-SQL в SQL Server, или если есть какие-то планы по внедрению чего-либо. Конечно, должна быть более современная альтернатива...

PS: Это не предназначено для начала пламенной войны, я действительно заинтересован в том, что это за варианты.

4b9b3361

Ответ 1

В T-SQL нет ничего плохого; он выполняет задание, для которого он предназначен (за исключением, возможно, добавления структур потока управления, но я отвлекаюсь!).

Возможно, посмотрите LINQ? Вы можете написать хранимые процедуры CLR, но я не рекомендую это, если это не для какой-либо функции, которая отсутствует (или для обработки тяжелых строк).

Ответ 2

Все остальные языки хранимых процедур базы данных (PL/SQL, SQL/PSM) имеют примерно одинаковые проблемы. Лично я считаю, что эти языки совершенно правильны для того, для чего они предназначены для использования - они лучше всего используются для управления логикой, основанной на кодах, особенно. если вы хотите повторно использовать это для нескольких приложений.

Итак, я думаю, что мой встречный вопрос для вас: зачем вы хотите, чтобы ваша программа выполнялась как часть процесса сервера базы данных? Разве это не то, что вы пытаетесь сделать лучше на уровне приложений или среднего уровня? Там вы можете взять любой язык или инструмент обработки данных по вашему выбору.

Ответ 3

От моей точки зрения только альтернатива T-SQL в SQL Server - НЕ использовать SQL Server

В соответствии с вашими точками обработки укусов с разделителем, Откуда написаны эти строки? Вы можете попробовать использовать службы интеграции и пакеты ssis для преобразования данных от одного к другому. Также есть хороший способ получить доступ к данным без SQL через Linked Serves,