Sql 如何使用脚本将数据从一个数据库导入到另一个数据库?
我有一个数据库DocData大小为8GB。我想使用导入导出向导将三个表从DocData移动到另一个数据库DocData2,而不使用out 这些表中的标识列。我想使用脚本移动它,并使用identity列复制数据。其中一个表的大小是7GB 我正在使用这个查询Sql 如何使用脚本将数据从一个数据库导入到另一个数据库?,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我有一个数据库DocData大小为8GB。我想使用导入导出向导将三个表从DocData移动到另一个数据库DocData2,而不使用out 这些表中的标识列。我想使用脚本移动它,并使用identity列复制数据。其中一个表的大小是7GB 我正在使用这个查询 CREATE TABLE [DocData2].[dbo].DocumentPages AS SELECT * FROM [DocData].[dbo].[DocumentPages] 但是我得到了以下错误 Incorrect synta
CREATE TABLE [DocData2].[dbo].DocumentPages AS
SELECT * FROM [DocData].[dbo].[DocumentPages]
但是我得到了以下错误
Incorrect syntax near the keyword 'SELECT'.
来自BOL
SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table ON
你在这儿插页吗
SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table OFF
您需要运行以下语句 假设:
- 两个数据库都存在于同一台服务器上
- 目标数据库
中不存在目标表DocumentPages
DocData2
无法使用问题中的脚本创建表。没有任何选项可以接受SELECT输出以这种方式创建新表 只有当两个数据库位于同一服务器上时,才能执行此操作。如果它们位于不同的服务器上,则需要使用其他技术,如链接服务器或SSIS包 也就是说,您需要首先创建[DocData2][dbo].DocumentPages表,然后将数据从一个表复制到另一个表
insert into [DocData2].[dbo].[DocumentPages]
select * from [DocData].[dbo].[DocumentPages]
请使用此脚本
SELECT * INTO [DocData2].[dbo].DocumentPages FROM [DocData].[dbo].[DocumentPages]
.如果需要精确的副本,则编写表脚本(右键单击对象brwoser中的表,您将看到创建脚本的选项)及其所有索引、约束等(您可能需要单独编写索引脚本),然后通过运行脚本创建表,然后编写一条与@Diego类似的insert语句(仅指定列,插入应指定列)
当然,如果您正确地管理数据库,您可能已经在源代码管理中使用了该脚本。至少现在就开始使用这些脚本执行此操作。这根本不是该语句所做的。@JohnN请解释为什么这是错误的。问题语句包括标识列。如果标识值中存在任何间隙,请那么这就是如何处理的问题了。+1确实如此,我在问题中完全忽略了这一点。坦率地说,这是一个糟糕的选择,因为它不会创建索引或除标识之外的其他约束。
SELECT * INTO [DocData2].[dbo].DocumentPages FROM [DocData].[dbo].[DocumentPages]