Информация: Мы находимся в процессе тестирования нашего обновления с SQL Server 2005 на SQL Server 2012 на этапе постановки. При чтении документации по функциям, которые больше не будут поддерживаться, COMPUTE (Transact-SQL) уходит, это будет проблемой для нас.Реализовать бесшовную функцию вычислений на SQL Server 2012
Вопрос: Есть ли способ выписать нашу собственную процедуру, которая заменит вычисление, встроенное в SQL Server 2012, которое сделает ее бесшовной, поэтому, когда вызывается Compute, она будет функционировать как SQL Server 2005? Альтернативой является то, что нам нужно обновить все файлы SQL, UDF, триггеры и хранимые процедуры, которые используют это встроенное с альтернативным кодом?
Note Я никогда не пытался воссоздать встроенную функцию, поэтому вся информация об этом будет очень полезной для меня и для всех, кто пытается это сделать в будущем. Также зная, можно ли это сделать, это плюс.
Clenup: Как всегда, если это дублирующееся сообщение, укажите ссылку ниже, и я удалю сообщение.
'COMPUTE BY' не является функцией. Я не вижу, как его эффекты (создание дополнительных наборов результатов) могут быть легко реплицированы. Мне любопытно: почему вы использовали COMPUTE BY? Кажется, это отвратительный API. – usr
Вы правы, это часть родного синтаксиса в 2005 году. Однако это нужно было бы реализовать другим способом, если бы это было возможно, поэтому использование функции слова. Я лично считаю, что правильным решением будет обновление до 2008 R2, которое даст нам несколько лет, чтобы исправить все местоположения, которые он использовал, а затем обновить до 2012 года. Вычисление было использовано в устаревшем коде (COBOL и пакетные процессы, которые вызывают файлы SQL) i заменили его более эффективным кодом, когда я его нашел. Существует всего 20 + лет кода для обзора, и я обеспокоен тем, что многие вещи будут ломаться с живым обновлением. –
Я сделал рекомендацию перейти на SQL Server 2008 в первую очередь, это даст нам 4 года или около того, чтобы обновить весь код, а затем мы можем перейти на SQL Server 2012. Я очищу этот вопрос на следующей неделе, поскольку он больше не будет применимые к нашей проблеме. В исследовании, которое я сделал, похоже, что расширение существующего синтаксиса для добавления этой функции обратно не является чем-то, что можно сделать. –