powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема совместимости MS SQL 2008R2 и MS SQL 2104
20 сообщений из 20, страница 1 из 1
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601538
rmnnad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть кастомное приложение и БД на MS SQL 2008R2.
Само приложение сейчас переписать нет возможности.
В приложении используется запрос:

Код: sql
1.
2.
use HISTORY
select c.name, c.status, o.name from syscolumns c, sysobjects o where c.id = object_id ('dbo.URTO_T_GROUPS') and c.cdefault *= o.id order by colid ASC 



На сервере 2008 отрабатывает без проблем.

Если выполнять этот запрос на 2014 сервере, то запрос не отрабатывает, в окне запроса подсвечивает кусок

Код: sql
1.
c.cdefault *= o.id



и выдает подсказку "В контексте, где ожидается условие, указано выражение не логического типа"

Можно ли что-то сделать в этой ситуации?
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601539
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rmnnad,

Ничего нельзя сделать, кроме как переписать приложение. Синтаксис *= устаревший. 2008R2 последняя версия, которая его поддерживает. Начиная 2012 и выше такой синтаксис не поддерживается.
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601552
rmnnad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. А кто-нибудь может мне темному написать этот запрос в современном изложении? Был бы очень благодарен
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601565
rmnnad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо пока ждал ответа сам сформировал... :)
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601637
demon2018
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601642
demon2018,

"Иногда лучше жевать, чем говорить"(с)


Если ты в глаза не видел и руками не трогал "до-ANSI-шные" внешние соединения, то нужно было просто пройти мимо....
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601645
demon2018,

вот сюда сходи, может в следующий раз будешь понимать, о чем речь... :)
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39601649
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,

Гоните его, насмехайтесь над ним!
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602085
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхdemon2018,

"Иногда лучше жевать, чем говорить"(с)


Если ты в глаза не видел и руками не трогал "до-ANSI-шные" внешние соединения, то нужно было просто пройти мимо....Это не "до-ANSI-шные", это ANSI SQL 89 стандарт.
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602098
Ennor Tiegael,

и ты даже ссылку на стандарт с описанием такого джойна можешь привести?
Или "у нас джентльмены верят друг другу на слово"(с)?
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602184
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor TiegaelЭто не "до-ANSI-шные", это ANSI SQL 89 стандарт.

Добрый Э - Эхи ты даже ссылку на стандарт с описанием такого джойна можешь привести?
Или "у нас джентльмены верят друг другу на слово"(с)?

Добрый - прав
Описания SQL JOIN 92
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602346
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,

Вы правы, но примерно наполовину. Вот это
Код: sql
1.
from syscolumns c, sysobjects o

- стандарт ANSI SQL 89, и никаких других соединений в нем не было.

Вот это
Код: sql
1.
and c.cdefault *= o.id

- vendor-specific syntax, придуманный в Sybase, унаследованный Microsoft и в стандарт так и не попавший.

Если же придираться к буквам, то называть второй синтаксис "до-ансишным" не корректно, т.к. первым стандартом был ANSI SQL 86, выпущенный понятно в каком году, и каких-либо серьезных новшеств в 89-й версии добавлено не было. Первая же версия Sybase SQL Server (совсем первая, да) была выпущена только в 1987, и я признаться не в курсе, был там этот синтаксис, или появился позже. Из этого следует, что на момент выпуска первой версии СУБД с поддержкой данного синтаксиса внешних соединений (когда бы оно ни произошло) стандарт ANSI SQL уже существовал.
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602542
nvv13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно еще
compatibility level
поменять у базы
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602549
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nvv13можно еще
compatibility level
поменять у базы
на 2014 до 90? успехов
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602553
Ennor TiegaelВот это
Код: sql
1.
and c.cdefault *= o.id

- vendor-specific syntax, придуманный в Sybase, унаследованный Microsoft и в стандарт так и не попавший.Вот именно!
В стандарте ANSI SQL-89 этого не было вообще, от слова "совсем".
Поэтому каждый выкручивался, как мог.
В SyBase/MS SQL Server придумали соединять таблицы через *=, в Oracle для этих же целей использовалась комбинация =+, в Informix оно записывалось наиболее близко к тому, что после вошло в ANSI SQL-92: FROM tab1, OUTER(tab2) WHERE tab1.col1 = tab2.col2
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602555
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nvv13можно еще
compatibility level
поменять у базы
у него же 2014-ый
он 80 не поддерживает.
последний, кто 80 терпел, был 2008 R2
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602559
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKnvv13можно еще
compatibility level
поменять у базы
на 2014 до 90? успехов
90 и так не катит.
в 2005 это уже discontinued.
так что только CL 80
@@version <= SQL Server 2008 R2
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602563
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,

а ну да, с 90го перестало работать :)
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602564
чтобы быть совсем уж точным...
Добрый Э - ЭхEnnor TiegaelВот это
Код: sql
1.
and c.cdefault *= o.id

- vendor-specific syntax, придуманный в Sybase, унаследованный Microsoft и в стандарт так и не попавший.Вот именно!
В стандарте ANSI SQL-89 этого не было вообще, от слова "совсем".
Поэтому каждый выкручивался, как мог.
В SyBase/MS SQL Server придумали соединять таблицы через *= ( в коде это выглядело бы так: FROM tab1, tab2 WHERE tab1.col1 *= tab2.col2 ), в Oracle для этих же целей использовалась комбинация = (+) (в коде это выглядело бы так: FROM tab1, tab2 WHERE tab1.col1 = tab2.col2(+) ), в Informix оно записывалось наиболее близко к тому, что после вошло в ANSI SQL-92: FROM tab1, OUTER(tab2) WHERE tab1.col1 = tab2.col2
...
Рейтинг: 0 / 0
Проблема совместимости MS SQL 2008R2 и MS SQL 2104
    #39602590
Ennor TiegaelДобрый Э - Эх,

Вы правы, но примерно наполовину. Вот это
Код: sql
1.
from syscolumns c, sysobjects o

- стандарт ANSI SQL 89, и никаких других соединений в нем не было.Заметь, в своем первоначальном сообщение я вел речь не за соединения вообще, а за их "внешнюю" разновидность:
Добрый Э - ЭхЕсли ты в глаза не видел и руками не трогал "до-ANSI-шные" внешние соединения, то нужно было просто пройти мимо....
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема совместимости MS SQL 2008R2 и MS SQL 2104
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]