有没有办法可以找到存储过程的保存位置,以便我可以将文件复制到桌面?
最佳答案
存储过程不存储为文件,它们存储为元数据并在目录 View sysschobjs
中向我们的苦工公开(感谢 Michael 关于 sys.objects
的提醒) , sys.procedures
, sys.sql_modules
对于单个存储过程,您可以直接使用这些 View (最重要的是sys.sql_modules.definition
)或使用 OBJECT_DEFINITION()
查询定义。功能为Nicholas pointed out (尽管他对 syscomments
的描述并不完全准确)。
要将所有存储过程提取到单个文件,一种选择是打开对象资源管理器,展开您的服务器 > 数据库 > 您的数据库 > 可编程性
并突出显示存储过程
节点。然后点击 F7 (查看 > Object Explorer Details )。在右侧,选择所需的所有过程,然后右键单击将存储过程编写为 > 创建到 > 文件
。这将生成一个包含您选择的所有过程的单个文件。如果您希望每个过程都有一个文件,则可以通过一次仅选择一个过程来使用此方法,但这可能很乏味。您还可以使用此方法将所有与会计相关的程序编写到一个文件中,将所有与财务相关的程序编写到另一个文件中,等等。
为每个存储过程生成一个文件的一种更简单的方法是使用 Generate Scripts wizard - 再次从对象资源管理器开始 - 右键单击您的数据库并选择任务 > 生成脚本
。选择选择特定数据库对象
并选中顶级存储过程
框。点击下一步。对于输出,请选择将脚本保存到特定位置
、保存到文件
和每个对象单个文件。
这些步骤可能会略有不同,具体取决于您的 SSMS 版本。
关于sql - 如何将存储过程编写到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240194/