Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SET SELECT в sql server 2000 и sql server 2008  [new]
amagnolia
Member

Откуда:
Сообщений: 9
Если выполнить следующий скрипт в Query Analyzer в sql server 2000, то никаких ошибок не происходит (работа корректная):

DECLARE @REZ AS Numeric(19,6)  

SET SELECT @REZ = 1

SELECT @REZ


Но если выполнить этот же скрипт в sql server 2008 (посредством Sql server management studio), то возникает ошибка:
"Incorrect syntax near the keyword 'SET'."

Почему это может происходить? И есть ли какая-нибудь настройка sql server 2008, которая может пропустить данный синтаксис?
20 июл 12, 12:46    [12892911]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
AlexMajic
Member

Откуда: Kiev
Сообщений: 99
DECLARE @REZ AS Numeric(19,6)  

SET @REZ = 1

SELECT @REZ
20 июл 12, 12:49    [12892943]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
slyer.bo
Member

Откуда: Минск
Сообщений: 20
Ты уж выбери либо
SET @REZ = 1

либо
SELECT @REZ = 1


Ошибка в синтаксисе
20 июл 12, 12:49    [12892944]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
amagnolia
Member

Откуда:
Сообщений: 9
Да я знаю, что так нужно писать :)

Дело в том, что у нашего клиента большая база данных для системы управления предприятием, и сейчас мы переводим их на новую версию. Там сотни процедур, которые писались 7 лет назад кем-то с таким вот странным синтаксисом. И в старой версии они так работали, а в новой работать отказываются. Переписывать кучу процедур совершенно не хочется.

Есть ли решение заставить их работать не переписывая?
20 июл 12, 13:23    [12893124]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
amagnolia
Да я знаю, что так нужно писать :)

Дело в том, что у нашего клиента большая база данных для системы управления предприятием, и сейчас мы переводим их на новую версию. Там сотни процедур, которые писались 7 лет назад кем-то с таким вот странным синтаксисом. И в старой версии они так работали, а в новой работать отказываются. Переписывать кучу процедур совершенно не хочется.

Есть ли решение заставить их работать не переписывая?
Если не поможет compatibility level 80, то придется ставить назад 2000й.

Сообщение было отредактировано: 20 июл 12, 13:25
20 июл 12, 13:25    [12893138]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
amagnolia
Member

Откуда:
Сообщений: 9
[quot Гавриленко Сергей Алексеевич]
amagnolia
compatibility level 80


Расскажите, пожалуйста, поподробней, что это и где?
20 июл 12, 13:26    [12893150]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Расскажите, пожалуйста, поподробней, что это и где?

http://msdn.microsoft.com/en-us/library/ms178653.aspx

Posted via ActualForum NNTP Server 1.5

20 июл 12, 13:28    [12893159]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
Читать в хелпе про ALTER DATABASE Compatibility Level (Transact-SQL) ( ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_6tsql/html/ca5fd220-d5ea-4182-8950-55d4101a86f6.htm )
20 июл 12, 13:28    [12893161]     Ответить | Цитировать Сообщить модератору
 Re: SET SELECT в sql server 2000 и sql server 2008  [new]
amagnolia
Member

Откуда:
Сообщений: 9
Спасибо!!!
20 июл 12, 13:31    [12893175]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить