2014-09-04 168 views
0

我有一個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

回答

2

嘗試此(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

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

如果目標表未創建,則此查詢將創建定義並導入數據。 – HaBo 2014-09-04 19:55:51

相關問題