在SQL Server 2000中备份数据库存储过程的查询是什么?
答案 0 :(得分:1)
在SQL Server 2000中,您可以使用此查询列出存储过程的完整文本,它们可以跨越多行。
SELECT
o.name,o.id,o.xtype, c.colid, c.text
FROM dbo.sysobjects o
INNER JOIN dbo.syscomments c ON o.id = c.id
WHERE o.xtype = 'p'
ORDER BY o.Name,c.colid
我会更容易使用Enterprise Manager来编写所有程序的脚本。在Enterprise Manager中,右键单击要从中捕获所有过程的数据库。将弹出一个选项列表,选择“所有任务”,然后选择“生成SQL脚本...”。将出现一个对话框,单击“全部显示”,然后可以使用复选框将对象列表细化为脚本。选择左侧的对象,然后单击“添加>>”将它们移动到脚本列表。您可以设置格式和其他选项,完成后单击“确定”。
在SQl Server 2005+中,您可以使用此查询列出所有存储过程,视图和函数的完整文本:
SELECT
LEFT(o.name, 100) AS Object_Name,o.type_desc,m.definition
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
你可以拿这个输出并保存,如果你愿意的话。
但是,使用SQL Server管理Studio编写出所有过程的脚本会更容易。