如何在SQL Server中转储Master DB的全部内容,如TSQL

时间:2015-12-09 16:20:54

标签: sql-server

我需要大量的MS-dialect SQL来测试解析器。我认为主数据库可能是一个很好的地方可以获得一些(可能是模型)或只是系统对象(procs,funcs,tables - the lot)在用户数据库(模型的副本,真的)。图形向导(右键单击db) - >任务 - >生成脚本...似乎不允许在DB中转储System对象。我甚至备份了主人并恢复为“正常”数据库;仍然没有运气。

我认为这与标记is_ms_shipped有关,可以使用sp_MS_marksystemobject设置,但我看不到撤消或绕过此方法的方法。 也许有一种方法可以从一些我不知道的(人类可读的)TSQL重建master?

转储它们的脚本会更好。有什么建议吗?它纯粹是供内部使用,所以不滥用IP。

编辑:我说的是架构对象,而不是表格中的实际数据。

1 个答案:

答案 0 :(得分:1)

如果你想要sp,fn,views等......以

开头
USE master
GO
SELECT object_name(object_id), definition, * FROM sys.system_sql_modules
GO

如果你只想要一切

USE master
GO
SELECT Object_Name(id), text, * from sys.syscomments
GO

根据需要调整查询以过滤您需要的特定对象。