我需要从特定架构下的SQL Server 08 db中提取所有表,存储过程和函数。我可以过滤管理工作室中显示的项目,然后为每个项目执行Script As -> Drop/Create
,但我真的想避免这种情况,因为模式中有很多项目。
有办法做到这一点吗?
修改:
我看过this question(我刚发现的可能重复)。我建议不要使用外部工具,因为这是在工作,我需要获得批准才能使用。我也不想要一个大的Create Database
脚本 - 我需要为每个表/ sproc / function分别使用脚本。
答案 0 :(得分: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
- 在sql 2000中使用了syscoments表,你不应该再使用它了 - 但是这样的话就是sys.syscomments表
答案 1 :(得分:1)
Visual Studio 2010 Premium包括数据库项目工具支持,允许您在数据库之间执行数据库模式比较(您可以只过滤到指定的数据库模式)并将实时数据库中的所有对象(和配置)提取到VS2010数据库项目,为每个对象创建一个脚本。
答案 2 :(得分:-1)
基于
的东西SELECT [text] FROM [syscomments]