sql - 如何将存储过程编写到文件中?

标签 sql sql-server

有没有办法可以找到存储过程的保存位置,以便我可以将文件复制到桌面?

最佳答案

存储过程不存储为文件,它们存储为元数据并在目录 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/

相关文章:

mysql - 创建 View 时如何解决空值

sql-server - 在 Microsoft SQL Server Management Studio 中创建 View 时遇到问题

sql - 在 SQL Server 中对临时表使用 View 的优点是什么

php - MySQL 子字符串返回整数

sql server用null替换特殊字符

sql-server - 在 SQL Server 中删除表中的所有记录是一种不好的做法吗?

sql - 数据立方体设计 : hard-to-aggregate measure

sql - sql中的字符串填充

mysql - SQL 按给定行列出包含 '1' 的列

mysql - MySQL中最 "space effective"的文本存储方式是什么?