вызов хранимой процедуры mssql | |
---|---|
Vova_ukr_lg Сообщений: 43 Дата регистрации: 10.10.2007 |
Добрый день.
Запускаю хранимую процедуру
это нормально работает в Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) но когда этот же код запускается в Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64) процедура не выполняется и возвращается ошибка [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "OUTPUT" если же убрать знак вопроса в строке
В чем ошибка? Может настройки какие-то у сервера надо проставить или изменился синтаксис в 2016 MS SQL? Исправлено 1 раз(а). Последнее : Vova_ukr_lg, 21.12.17 15:23 |
Re: вызов хранимой процедуры mssql | |
---|---|
Vova_ukr_lg Сообщений: 43 Дата регистрации: 10.10.2007 |
Ошибку свою увидел. Оператор OUTPUT в вызове лишний, но почему он работал в SQL Server 2012?
Когда убрал оператор заработало и на старой и на новой версии. |
Re: вызов хранимой процедуры mssql | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Так случается, что какие-то ошибки синтаксиса в одних версиях игнорируются, а позже отношение к ним меняется на более строгое. Поэтому более правильно было сказать, что OUTPUT не "работал в 2012", а не мешал работать, игнорировался. Исправлено 1 раз(а). Последнее : akvvohinc, 21.12.17 19:06 |
Re: вызов хранимой процедуры mssql | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
По синтаксису EXEC/EXECUTE использование OUTPUT не является ошибкой (оно там даже обязательно для курсорных параметров вроде как, хотя хелп не совсем чётко этот момент описывает). Другое дело что тут речь про ODBC, а у него свои заморочки. В общем то для работы с ХП через ODBC нужно было применять CALL а не EXEC - у него свои "соглашения по синтаксису", и тут уже сам ODBC озаботится о конструировании правильного запроса для сервера, передачи параметров и т.п.
------------------ WBR, Igor |
© 2000-2024 Fox Club  |