Ham*_*han 7 sql backup ssms stored-procedures sql-server-2005
是:如何使用查询备份选定的存储过程
我想通过命令行(在SQL Server Management Studio中)备份200个存储过程中的10个.有一个简单的方法吗?
现在我正在使用Database-> Tasks-> Generate Scripts选项,它会引导我完成一系列对话框,我选择要导出的SP.我想让这个过程变得简单,所以我不必再重复一遍.
注意:通过导出我的意思是只是将其打印在屏幕上,这样我就可以将其复制并保存在文本文件中.
Sam*_*lgh 10
如何使用INFORMATION_SCHEMA.Routines?
DECLARE MY_CURSOR Cursor
FOR
SELECT r.Routine_Definition
FROM INFORMATION_SCHEMA.Routines r
OPEN MY_CURSOR
DECLARE @sproc VARCHAR(MAX)
FETCH NEXT FROM MY_CURSOR INTO @sproc
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
PRINT @sproc
FETCH NEXT FROM MY_CURSOR INTO @sproc
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR
GO
Run Code Online (Sandbox Code Playgroud)
编辑
听起来你可能想要这样的东西在结果集中包含LAST_ALTERED日期和定义.
SELECT
r.LAST_ALTERED,
r.ROUTINE_NAME,
r.Routine_Definition
FROM INFORMATION_SCHEMA.Routines r
Run Code Online (Sandbox Code Playgroud)
您可以通过以下查询选择所需的SP:
SELECT obj.Name as SPName,
modu.definition as SPDefinition,
obj.create_date as SPCreationDate
FROM sys.sql_modules modu
INNER JOIN sys.objects obj
ON modu.object_id = obj.object_id
WHERE obj.type = 'P' AND obj.Name IN ('sp1','sp2', ect)
Run Code Online (Sandbox Code Playgroud)
另请参阅:http : //www.sqlservercurry.com/2009/03/list-all-stored-procedures-of-database.html和http://www.sqlservercurry.com/2007/12/redirect-select-query -output-to-text.html