将表从一个数据库复制到另一个数据库

问题描述:

我有一个SQL Server表,其中有大约250条记录,我需要从测试复制到生产数据库。 该表包含必须使用副本保留的“qid”标识列(我无法重新编号行或重新编号)。将表从一个数据库复制到另一个数据库

例如,如果我在测试数据库中添加记录251,252和253,然后将其复制到生产数据库,我希望生产中的下一个记录为254(NOT 251)。

任何想法如何自动执行此操作?

CREATE TABLE [dbo].[question](
    [id] [uniqueidentifier] NOT NULL CONSTRAINT [DF_question_id] DEFAULT (newid()), 
    [name] [varchar](500) NULL, 
    [created] [datetime] NULL CONSTRAINT [DF_question_created] DEFAULT (getdate()), 
    [qid] [int] IDENTITY(1,1) NOT NULL, 
CONSTRAINT [PK_question] PRIMARY KEY CLUSTERED 
(
    [id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
+0

使用SET IDENTITY_INSERT dbo.Tool ON;并将数据从源插入目标。假设使用可以从目标数据库访问源数据库。完成导入后,将身份插入设置为关闭 – HaBo 2014-09-04 19:46:02

+0

如果有任何答案有帮助,请通过接受答案来确认。这将鼓励用户回答更多问题 – HaBo 2014-09-05 17:56:50

尝试此(assumiing使用可以访问目标数据库源数据库)

SET IDENTITY_INSERT TargetDB.[dbo].[question] ON; 

Insert into TargetDB.[dbo].[question](column1, column2, column3) 
select column1, column2, column3 from SourceDB.[dbo].[question] 

SET IDENTITY_INSERT TargetDB.[dbo].[question] Off; 
+0

谢谢,看起来就像是这样。我会试一试。 – 2014-09-04 19:49:23

select * into targetdb.dbo.question from source.dbo.question 
+1

如果目标表未创建,则此查询将创建定义并导入数据。 – HaBo 2014-09-04 19:55:51