是否有一种非交互式(读取:可编写脚本)的方式将所有存储过程转储到磁盘?
我们将存储过程的版本保存在存储库中,以跟踪更改并用于部署和回滚。目前,每当我们想要修改存储过程时,您都必须在开始更改时将其直接从数据库中拉出。
答案1
您的存储库使用什么?我不明白为什么在开始更改时必须将其直接从数据库中拉出。如果您的发布管理是将它们放在存储库中,那么您应该能够将文件从存储库中拉出,在 Management Studio 中启动连接并运行 ALTER PROCEDURE。
INFORMATION_SCHEMA.ROUTINES
也就是说,您可以使用系统视图或视图提取对象的代码syscomments
。
它的使用方式INFORMATION_SCHEMA.ROUTINES
如下:
SELECT Routine_Definition
FROM INFORMATION_SCHEMA.ROUTINES
WHERE Routine_Type='Procedure'
它的使用方式syscomments
如下:
SELECT OBJECT_NAME(id),text
FROM syscomments
WHERE OBJECTPROPERTY(id, 'IsProcedure') = 1