如何使用脚本将数据从一个数据库导入另一个数据库?

时间:2012-05-01 11:15:35

标签: sql sql-server sql-server-2008 tsql

我有一个8 GB的数据库 DocData 。我想将三个表格从 DocData 移动到另一个数据库 DocData2 ,而不使用导出导出向导和 这些表中的标识列。我想使用脚本移动它并使用标识列复制数据。其中一个表大小为7 GB。

我正在使用此查询

CREATE TABLE [DocData2].[dbo].DocumentPages AS 
SELECT  * FROM [DocData].[dbo].[DocumentPages]

但是我收到以下错误。

Incorrect syntax near the keyword 'SELECT'.

5 个答案:

答案 0 :(得分:3)

FROM BOL

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table  ON

在此处插入

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table  OFF

答案 1 :(得分:3)

请使用此脚本。

SELECT * INTO [DocData2].[dbo].DocumentPages FROM [DocData].[dbo].[DocumentPages]

Read here to know more about SELECT INTO

答案 2 :(得分:2)

您需要运行以下语句。

假设

  • 两个数据库都存在于同一台服务器上。
  • 目标数据库DocumentPages
  • 中尚不存在目标表DocData2

脚本

SELECT  *   
INTO    [DocData2].[dbo].[DocumentPages] 
FROM    [DocData].[dbo].[DocumentPages]

您的问题

您无法使用问题中的脚本创建表格。 CREATE TABLE没有任何选项可以接受SELECT输出以这种方式创建新表。

答案 3 :(得分:0)

如果两个数据库都在同一台服务器上,则只能这样做。如果它们位于不同的服务器上,则需要使用其他技术,如链接服务器或SSIS包。

话虽如此,您需要首先创建[DocData2]。[dbo] .DocumentPages表,然后将数据从一个表复制到另一个表

insert into [DocData2].[dbo].[DocumentPages]
select * from  [DocData].[dbo].[DocumentPages]

答案 4 :(得分:0)

如果你想要一个精确的副本,那么编写表脚本(右键单击对象brwoser中的表,你会看到创建脚本的选项)及其所有索引,约束等(你可能需要脚本)单独索引)然后通过运行脚本创建表,然后编写一个像@Diego那样的插入语句(仅指定列,插入shoudl alawys指定列)。

当然,如果您正在核心地管理数据库,那么您已经拥有了源代码管理中的脚本。至少现在用这些脚本开始这样做。