Впервые за многие годы я занимался программированием на T-SQL в SQL Server 2008 и забыл, насколько плох этот язык на самом деле:
- Контроль потока (все начало / конец) кажется неуклюжим
- Плохая обработка исключений. Исключения не всплывают так же, как на любом другом языке. Нет повторного броска, если вы не закодируете его самостоятельно, и функция raiserror даже не написана правильно (это вызвало у меня некоторые головные боли!)
- Плохая обработка строк
- Единственным типом последовательности является таблица. Мне пришлось написать функцию для разделения строки на основе разделителя и сохранить ее в таблице, в которой были строковые части вместе со значением, указывающим на позицию в последовательности.
- Если вам нужно выполнить поиск в сохраненном процессе, тогда манипулирование результатами является болезненным. Вы должны либо использовать курсоры, либо соединить цикл while с вложенным поиском, если результаты содержат какой-то столбец порядка
Я понимаю, что могу кодировать свои хранимые процедуры с помощью C #, но для этого потребуется разрешение сервера на разрешение функций CLR, что на моем рабочем месте недоступно.
Кто-нибудь знает, есть ли какие-либо альтернативы T-SQL в SQL Server или есть какие-либо планы по внедрению чего-либо. Конечно, должна быть более современная альтернатива ...
PS: Это не предназначено для того, чтобы начать пламенную войну, мне действительно интересно, какие есть варианты.