При попытке автоматизировать считывание информации об ограничениях с помощью sp_helpconstraint
у меня появилась блестящая идея вытащить исходный код встроенного SP напрямую и запустить его самостоятельно (так как он возвращает несколько наборов результатов, поэтому они не могут быть хранится во временной таблице). Поэтому я запустил exec sp_helptext 'sp_helpconstraint'
(в SQL Azure) для генерации исходного кода и скопировал его в новое окно запроса.
Однако, когда я запускаю SP (в SQL Azure), я получаю множество сообщений об ошибках - например, этот объект syscomments
не существует, хотя я использую тот же источник, который отлично работает при вызове sp_helpconstraint
напрямую. Просто чтобы убедиться, что это не было аномалией с процедурой или ошибкой в моем выполнении копирования / вставки, я протестировал точно такую же процедуру на SQL Server 2008, и если я непосредственно скопировал источник SP в новое окно запроса, он запустился отлично (очевидно, после удаления операторов return
и ручной настройки входных параметров).
Что дает ?? Работают ли встроенные SP в специальном контексте, где в SQL Azure доступно больше команд, чем обычно? sp_helptext
не возвращает фактический источник, который выполняется в SQL Azure?
Если вы хотите, чтобы я что-то попробовал, дайте предложение, и я могу попробовать его на нашем экземпляре SQL Azure Development. Спасибо!