Я пытаюсь сохранить старую хранимую процедуру в строку. Когда я использую следующее, я не получаю никаких разрывов строк.Получить текст хранимой процедуры в SQL Server
SELECT @OldProcedure = Object_definition(object_id)
FROM sys.procedures
WHERE name = @ProcedureName
Любые предложения о том, как получить текст хранимой процедуры с разрывами строк?
Я думал об использовании sp_helptext
Благодарности
Update
Я скопировать и вставить результаты из результатов, которые показывают мне одну строку.
Что касается скрипта, так как я сохраняю результаты в поле db. Я создаю инструмент, который будет генерировать процедуры «на лету», но я хотел создать их историю.
Update
Оказалось, что Object_definition делает то, что я хочу, но по какой-то причине, когда я скопировать его из результатов я получаю одну строку.
Declare @sql varchar(max) ;
SELECT @sql=Object_definition(object_id)
FROM sys.procedures
WHERE name = 'Test_QueryBuilder';
drop procedure Test_QueryBuilder
exec(@sql)
print @sql
Как вы знаете, нет ли перерывов на линии? Вы смотрите на это в SSMS? Если это так, вам просто нужно установить вывод в текст вместо сетки, и он покажет вам форматированный текст. –
Почему бы просто не просмотреть их в SQL Server Management Studio и файл «Script to» или окно запроса? – BrianAtkins
sp_helptext - это действительно путь. Вы получите точное определение вашей процедуры, поскольку оно было/будет скомпилировано на сервере. – Louis