Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
qqguest
Guest
Как известно, синтаксис определения CLR функций не поддерживается в SQL2005 в базах с уровнем совместимости (compatibility level) 80, т.е. SQL2000.
Однако, если в такой базе изменить compatibility level на 90, определить CLR функцию, затем вернуть compatibility level значение 80, то функция после этого успешно работает. Т.е. чисто технически этот запрет можно обойти.
Хотелось бы узнать у уважаемых экспертов, можно ли действительно пользоваться CLR функциями в базах SQL2000 на сервере SQL2005 или тут возможны какие-то проблемы?

@@version: Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
9 окт 09, 12:58    [7764136]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
Хотелось бы узнать у уважаемых экспертов, можно ли действительно пользоваться CLR функциями в базах SQL2000 на сервере SQL2005 или тут возможны какие-то проблемы?


На 2005 сервере база уже не может быть "базой 2000". Уровень совместимости определяет ограничения на синтаксис языка и ряд поведенческих характеристик движка бд. Да и вообще не понятен смысл использования слр и уровеня совместимости 80. Что мешает использовать 90?

Сообщение было отредактировано: 9 окт 09, 13:10
9 окт 09, 13:10    [7764279]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
qqguest
Guest
автор
На 2005 сервере база уже не может быть "базой 2000".

Что значит не может? На 2005 сервере разные базы могут иметь разные уровни совместимости, от 65 до 80 (SQL2000) и 90 (SQL2005).
автор
Что мешает использовать 90?

Это legacy application, перетаскиваемое с сервера 2000. Переход на 90 - это отдельная задача, а кое-что надо бы дописать уже сейчас. Через CLR это делать значительно удобнее.
9 окт 09, 13:28    [7764477]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
Что значит не может? На 2005 сервере разные базы могут иметь разные уровни совместимости, от 65 до 80 (SQL2000) и 90 (SQL2005).


Вы кавычки видели?! Уровень совместимости - это уровень совместимости. А сама бд - уже 2005. Например, Вы не сможете поднять ее бэкап на 2000.
9 окт 09, 13:32    [7764527]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
qqguest
Guest
автор
Уровень совместимости - это уровень совместимости. А сама бд - уже 2005. Например, Вы не сможете поднять ее бэкап на 2000

Обратная совместимость с 2000 сервером в данном случае не интересует
9 окт 09, 14:08    [7764892]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
qqguest
автор
Уровень совместимости - это уровень совместимости. А сама бд - уже 2005. Например, Вы не сможете поднять ее бэкап на 2000

Обратная совместимость с 2000 сервером в данном случае не интересует

Еще раз. Уровень совместимости влияет лишь на то, как оптимизатор реагирует на тексты команд, что вы выполняете для этой базы
На физическом уровне базы все равно остается в формате SQL2005
9 окт 09, 14:12    [7764946]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
qqguest
Guest
Glory
Еще раз. Уровень совместимости влияет лишь на то, как оптимизатор реагирует на тексты команд, что вы выполняете для этой базы
На физическом уровне базы все равно остается в формате SQL2005

Так правильно ли я понял, что CLR функциями в базах с уровнем совместимости 80 можно пользоваться без ограничений?
9 окт 09, 15:21    [7765610]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
qqguest
Glory
Еще раз. Уровень совместимости влияет лишь на то, как оптимизатор реагирует на тексты команд, что вы выполняете для этой базы
На физическом уровне базы все равно остается в формате SQL2005

Так правильно ли я понял, что CLR функциями в базах с уровнем совместимости 80 можно пользоваться без ограничений?

Если оптимизатор признает синтаксис вызова валидным, то используйте
9 окт 09, 15:26    [7765647]     Ответить | Цитировать Сообщить модератору
 Re: CLR функции на уровне 80 (SQL2000) в SQL2005  [new]
qqguest
Guest
Glory
Если оптимизатор признает синтаксис вызова валидным, то используйте

Синтаксис вызова не отличается, по крайней мере для скалярных функций, так что будем пользоваться.
Спасибо!
9 окт 09, 15:45    [7765827]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить