我在MS SQL服务器中有两个具有相同结构的数据库。
我想将所有视图复制到另一个数据库。
我尝试使用DTS导出数据功能(适用于表格对象)。
但是这会执行SQL&创建表对象。
我不想执行那只想复制视图,以便我可以在设计视图中打开它们。
我尝试在目标数据库中使用创建新视图&复制源数据库视图的SQL查询&保存视图。 这项工作与我想要的完全相同,但我有很多观点&份数!
答案 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;