我有一个8 GB的数据库 DocData 。我想将三个表格从 DocData 移动到另一个数据库 DocData2 ,而不使用导出导出向导和 这些表中的标识列。我想使用脚本移动它并使用标识列复制数据。其中一个表大小为7 GB。
我正在使用此查询
CREATE TABLE [DocData2].[dbo].DocumentPages AS
SELECT * FROM [DocData].[dbo].[DocumentPages]
但是我收到以下错误。
Incorrect syntax near the keyword 'SELECT'.
答案 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]
答案 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指定列)。
当然,如果您正在核心地管理数据库,那么您已经拥有了源代码管理中的脚本。至少现在用这些脚本开始这样做。