如何在保持外键关系/引用完整性的同时在多个数据库表之间移动数据?
技术问答
278 人阅读
|
0 人回复
|
2023-09-12
|
我正试图找到移动/合并多个数据库中有价值的数据表的最佳方法。5 }8 ]0 A6 w& Z7 }& L
我有一个类似以下内容的架构:
% p; Y' J' H5 f w9 OCREATE TABLE Products( ProductID int IDENTITY(1,1) NOT NULL, Name varchar(250) NOT NULL, Description varchar(1000) NOT NULL, ImageID int NULL)CREATE TABLE Images ImageID int IDENTITY(1,1) NOT NULL, ImageData image NOT NULL)使用产品的ImageID的外键到图像的ImageID。1 X# O4 @; V' x1 P$ A) i5 s/ f
因此,将这些表中包含的数据从多个源数据库移动到具有相同架构的目标数据库的最佳方法是什么。我的主要问题是维护产品及其图像之间的链接。
! A% h1 w @3 @& W+ @& B) ^2 v
5 _* Z8 `4 X+ {8 |/ ~9 R 解决方案:
# m9 G# `# m# X4 O 在SQL Server身份插入可以在中间使用:
! {, y2 p5 `- O! ~SET IDENTITY_INSERT NewTable ON<i>SET IDENTITY_INSERT NewTable OFF启用意识形态插入后,您可以像任何其他列一样在标识列中插入一个值。这使得您只能从链接服务器中复制表,例如:
4 V- J" U+ D- I! H! F E& `insert into newdb.dbo.NewTableselect *from oldserver.olddb.dbo.OldTable |
|
|
|
|
|