2011-09-27 24 views
0

我需要从特定架构下的SQL Server 08数据库中提取所有表,存储特效和函数。我可能筛选Management Studio中显示的项目,然后为他们每个人做Script As -> Drop/Create,但我真的很想避免这种情况,因为模式中有很多项目。如何从特定模式中提取sprocs/tables/functions?

有没有办法做到这一点?

编辑:

我在this question一看(可能重复我刚发现)。我建议不要使用外部工具,因为这是在工作,我需要获得批准才能使用它。我也不想要一个大的Create Database脚本 - 我需要为每个表格/ sproc /函数单独的​​脚本。

回答

2
select 
    object_name(obj.object_id), 
    sch.name, 
    co.definition 
from 
    sys.objects obj 
    join sys.schemas sch on sch.schema_id = obj.schema_id 
    left join sys.sql_modules co on co.object_id = obj.object_id 
where 
    sch.name = 'DBO' --here goes your schema name 

--The syscoments表使用早在SQL 2000,你不应该再使用它 - 但是当所以它是sys.syscomments表

+0

这作品,谢谢。尽管获得一个奇怪的行为 - 它适用于每个模式_except_我正在寻找。任何配置或任何东西可以阻止架构出现在这个查询/ sys.objects中?我确定这些对象肯定是在正确的模式中,所以它不是空的。 – Alex

1

Visual Studio 2010 Premium包含数据库项目工具支持,该支持允许您在数据库之间执行数据库模式比较(您只能过滤到指定的数据库模式),并将实时数据库中的所有对象(和配置)提取到VS2010数据库项目,为每个对象创建一个脚本。

请参阅Working with Database Projects

-1

东西基于

SELECT [text] FROM [syscomments] 
相关问题