Если вы предпочитаете что-то с немного большей гибкостью, посмотрите системное представление sys.sql_modules, так как оно дает вам немного дополнительной информации об объекте и имеет хорошую возможность присоединяться к другим системным таблицам. *
Остальная часть ответа MauMen - правильное направление: используйте SQLCMD, чтобы сгенерировать вывод в файл с "-o OutputFile.sql".
Например, создать процедуру:
create proc dbo.pr_procDefTest
as
print 'This is a proc definition'
go
Показать определение:
select m.definition
from sys.procedures p
inner join sys.sql_modules m on p.object_id = m.object_id
where p.name = 'pr_procDefTest'
Вывод с SQLCMD:
sqlcmd -E -S .\sqlexpress -d test -o OutputFile.sql -Q "set nocount on; select m.definition from sys.procedures p inner join sys.sql_modules m on p.object_id = m.object_id where p.name = 'pr_procDefTest'" -h -1 -w 65535
Передается множество параметров, которые вы можете найти на странице Утилита sqlcmd MSDN . Важно отметить использование "set nocount on;" в начале скрипта, чтобы предотвратить "(1 строки затронуты)" нижний колонтитул.