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

Vik*_*kas 23 sql-server views

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

我想复制所有视图另一个数据库.

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

但是,它执行SQL并创建表对象.

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

我尝试在目标数据库中使用create new view并复制源数据库视图的SQL查询并保存视图.这项工作与我想要的完全相同,但我有很多观点和副本数量!

Max*_*erl 40

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

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


Chr*_*itz 9

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

select * 
from INFORMATION_SCHEMA.VIEWS
Run Code Online (Sandbox Code Playgroud)

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

  • 至少在 SQL Server 2012 中,此字段会删除视图创建脚本中的所有换行符,使其对于在其 SQL 语句之前带有注释的任何视图都无用。 (2认同)

And*_*mar 7

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


Sal*_*med 5

复制一个视图的简单代码

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;
Run Code Online (Sandbox Code Playgroud)