У нас есть пакет SSIS, который выполняет хранимую процедуру в источнике OLEDB и записывает вывод в файл.Хранимая процедура имеет условие, что она не будет ничего делать, если это определенный день недели.Когда он производит данные, он проходит через несколько временных таблиц, чтобы сгенерировать окончательные данные (которые полностью получены из временных таблиц);Для сохраненного процесса в начале включена функция SET FMTONLY OFF, чтобы он мог отправлять метаданные в SSIS.(Используются два сервера: SQL Server 2008 на компьютерах с Windows 2008 Server.)
Прошлой ночью (дни, в которые не должны генерироваться данные, - это воскресенье / понедельник, и это было в воскресенье вечером, когда планировалось запустить егочасть большого задания, поэтому он будет запускаться каждый раз, когда запускается родитель), pkg начал жаловаться, что не может найти метаданные для хранимого процесса.Когда вы запускаете proc непосредственно на сервере в SQL Mgmt Studio, он не возвращает ни строк, ни заголовков столбцов.Однако точно такой же код и данные в нашей среде разработки этого не делают;он не возвращает данных (правильно), но отображает заголовки столбцов (также правильно), поэтому версия пакета pkg не жалуется на метаданные.
Я также попытался добавить хитрые метаданные вверхняя часть процедуры внутри никогда не выполняемого фрагмента кода (если 1 = 0, начать выбор приведения (null как varchar (10)) как конец column1), но это не сработало.
I 'Мне остается подумать, что должна существовать какая-то разница между производством и разработкой, которая не сохранит метаданные в кэше, но сохранит их в процессе разработки.У кого-нибудь есть идеи, с чего начать поиск?