В случае успеха scanf возвращает количество успешно назначенных аргументов. Если сбой в MATCHING происходит до того, как назначен первый аргумент, scanf возвращает 0, а если сбой INPUT происходит до того, как назначен первый аргумент, возвращается EOF. А теперь ответ на ваш вопрос: EOF расширяется до -1, поэтому ваш while - это что-то вроде while («нет ошибки ввода в scanf ()» & amp; ....).
Но сценарий (756K)
Должен быть намного больше, чем просто a CREATE DATABASE
в сценарии, настолько очень трудно для высказывания, когда сценарий делает.
Можно записать отчеты о выполнении работ из сценария назад клиенту или использовать SQL Profiler для наблюдения, какие команды выполняются.
Я не знаю то, что делает Ваш сценарий, делают точно в следующем 754K
, но строки, которые Вы отправили, кажутся довольно безопасными.
Попытайтесь добавить следующее к своему сценарию:
SET STATISTICS TIME ON
Это покажет время выполнения запросов, когда они работают, и это поможет Вам определить местоположение проблемы более точно.