如何将视图从一个数据库复制到另一个数据库

时间:2009-12-16 10:19:00

标签: sql-server views

我在MS SQL服务器中有两个具有相同结构的数据库。

我想将所有视图复制到另一个数据库。

我尝试使用DTS导出数据功能(适用于表格对象)。

但是这会执行SQL&创建表对象。

我不想执行那只想复制视图,以便我可以在设计视图中打开它们。

我尝试在目标数据库中使用创建新视图&复制源数据库视图的SQL查询&保存视图。 这项工作与我想要的完全相同,但我有很多观点&份数!

5 个答案:

答案 0 :(得分:40)

右键单击您的数据库并说出Tasks-> Generate scripts。 SQL Server Management Studio能够为您生成CREATE脚本。

然后,您可以简单地复制此脚本并在目标服务器/数据库上执行它。

答案 1 :(得分:8)

我知道这是一个非常晚的答案, 但是我认为这可能对某些人有用 (如果你没有像sql server management studio那样的gui)

select * 
from INFORMATION_SCHEMA.VIEWS

这里你在sql server中得到一个名为“view_definition”的列, (这适用于其他供应商的数据库)

答案 2 :(得分:7)

右键单击数据库,选择“任务”,然后选择“生成脚本”。这将允许您生成包含数据库中所有视图的单个脚本。

答案 3 :(得分:1)

如果您可以访问Visual Studio并拥有数据库项目类型,则可以 1)导入包含的所有ddl,视图和表 2)轻松将这些添加到集成源控件 3)将整个或部分迁移到新数据库

在初始创建数据库项目后,系统将提示您连接到SQL Server实例和数据库名称。完成导入后,整个数据库的ddl将在一个非常类似于SSMS树的树中提供,但是使用DDL文件而不是从中派生它的对象。

答案 4 :(得分:1)

用于复制一个视图的简单代码

USE DatabaseA;
GO

DECLARE @sql NVARCHAR(MAX);

SELECT @sql = definition
FROM sys.sql_modules
WHERE [object_id] = OBJECT_ID('dbo.ViewName');

EXEC DatabaseB..sp_executesql @sql;