Как изменить целевой сервер базы данных в SQL Server?

#sql-server-2008 #try-catch #sql-server-2000

#sql-server-2008 #попробуйте-catch #sql-server-2000

Вопрос:

Я пытался использовать TRY..CATCH функцию в хранимой процедуре SQL Server 2005, но это не сработало. Я проверил свою версию с помощью @@VERSION , там отображалось «MS SQL Server 2000 — 8.00.194 (Intel X86) «, но когда я нажал на Справка-> О программе, там отображалось «9.00.1399.00», что четко указывает на то, что у меня установлен SQL Server 2005.

Я знаю, что это TRY..CATCH можно использовать только на SQL server 2005 или выше..

Возможно, моя система использует Sql Server 2000 в качестве исходной базы данных или что-то в этом роде, возможно, я ошибаюсь в описании. Как это изменить тогда..

Комментарии:

1. Help -> About вернет версию SQL Server Management Studio (приложение, которое вы используете для запуска SQL в), а не версию SQL Server, к которому оно подключено.

Ответ №1:

После повторного прочтения вашего вопроса у вас явно установлены клиентские средства SQL Server 2005 (SSMS), а ваша база данных находится на сервере SQL Server 2000, поэтому вы не можете использовать TRY..CATCH . Точка.

Предполагая, что у вас действительно есть сервер SQL Server 2005, вы убедились, что для конкретной базы данных установлен уровень совместимости 90 (SQL Server 2005)?

Щелкните правой кнопкой мыши база данных-> Свойства-> Уровень совместимости

Это может произойти, если вы обновите сервер и забудете обновить уровень совместимости базы данных.

Комментарии:

1. Спасибо, Митч, но на уровне совместимости у меня есть только два варианта. 1. SQL Server 7.0 и 2. SQL Server 2000 (80). У меня нет возможности установить для него значение SQL Server 2005 (или 90).

2. @Ajit D: тогда у вас, очевидно, нет SQL Server 2005 — ваш сервер базы данных — SQL Server 2000, и на этой версии вы не можете использовать TRY....CATCH — вам нужно обновить!

Ответ №2:

  • help..about предоставляет вам версию клиентских инструментов (SSMS)
  • SELECT @@VERSION выдает версию сервера

Если версия сервера 8.x, то у вас SQL Server 2000, который не поддерживает TRY / CATCH. Никакие манипуляции с уровнем совместимости это не исправят.

У вас есть 3 практических варианта

  • Не используйте TRY / CATCH
  • Обновите версию вашего сервера
  • Установите экземпляр names SQL Server 2005 в том же окне