Aar*_*and 39
存储过程不会作为文件存储,他们作为元数据存储和暴露给我们的苦工(感谢迈克尔有关的提醒sysschobjs)在目录视图sys.objects,sys.procedures,sys.sql_modules,等对于个人存储过程,你可以直接使用查询定义这些观点(最重要的sys.sql_modules.definition)或使用尼古拉斯指出的OBJECT_DEFINITION()功能(虽然他的描述并不完全准确).syscomments
要将所有存储过程提取到单个文件,一个选项是打开对象资源管理器,展开your server > databases > your database > programmability并突出显示该stored procedures节点.然后点击F7(查看> 对象资源管理器详细信息)在右侧,选择所需的所有步骤,然后单击鼠标右键script stored procedure as > create to > file.这将生成一个包含您选择的所有过程的文件.如果您希望每个过程都有一个文件,那么您可以通过一次只选择一个过程来使用此方法,但这可能很乏味.您还可以使用此方法将所有与会计相关的过程编写为一个文件,将所有与财务相关的过程编写为另一个文件,等等.
每个存储过程只生成一个文件的简单方法是使用Generate Scripts向导 - 再次从Object Explorer开始 - 右键单击数据库并选择Tasks > Generate scripts.选择Select specific database objects并选中顶级Stored Procedures框.点击下一步.对于输出选择Save scripts to a specific location,Save to file和Single file per object.
根据您的SSMS版本,这些步骤可能略有不同.
存储过程不是作为一个单独的文件“存储”的,您无需数据库即可自由浏览和阅读。它存储在它属于一组系统表的数据库中。包含定义的表称为[sysschobjs],我们中的任何最终用户甚至都无法(直接)访问。
要从数据库中检索这些存储过程的定义,我喜欢使用以下查询:
select definition from sys.sql_modules
where object_id = object_id('sp_myprocedure')
Run Code Online (Sandbox Code Playgroud)
但是我喜欢亚伦的回答。他还提供了其他一些不错的选择。
| 归档时间: |
|
| 查看次数: |
40596 次 |
| 最近记录: |