sql server 批量导出存储过程
sys.syscomments:包含数据库中每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的项。text 列包含原始的 SQL 定义语句。(简单点说,这个系统表存储了我们创建的存储过程、视图等的源码,通过查询该系统表可以查看创建的存储过程等源码。SQL Server2000引入)
sys.sql_modules:对每个 SQL 语言定义的模块对象都返回一行。类型为 P、RF、V、TR、FN、IF、TF 和 R 的对象均有关联的 SQL 模块。在此视图中,独立的默认值,即 D 类型的对象也具有 SQL 模块定义。(SQL Server 2005引入)
--查询存储过程,复制TEXT部分即可参考:http://bbs.csdn.net/topics/320261131#post-322618161select b.[ name ],a.[text]
from syscomments A
inner join sysobjects B on A.ID = B.ID
where b.xtype = 'P'
--导出所有表中自定义方法
select b . [name] , a . [text]
from syscomments A
inner join sysobjects B on A . ID = B . ID
where b . xtype = 'FN'
使用sys.sql_modules来导出所有自定义函数,存储过程
SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition
FROM sys.sql_modules AS sm
JOIN sys.objects AS o ON sm.object_id = o.object_id
ORDER BY o.type;
GO
系统视图(sys.syscomments): http://msdn.microsoft.com/zh-cn/library/ms186293.aspx
系统视图(sys.sql_modules):http://msdn.microsoft.com/zh-cn/library/ms175081.aspx