我有以下表格:
CREATE TABLE B( Id [uniqueidentifier] PRIMARY KEY NOT NULL, [Name] varchar(100) NULL;
CREATE TABLE A (Id [uniqueidentifier] PRIMARY KEY NOT NULL, BId [uniqueidentifier] NOT NULL CONSTRAINT FK_A_B FOREIGN KEY(BId) REFERENCES dbo.B(Id));
这是一个简化的示例,实际上表中的其他列与问题无关。 我需要将两个表的主键列更改为int类型并自动增加BUT以将旧的Id值保留为GUID列 我的问题是: 哪种更改方式最好?有两种方法可以想到 - 第一种方法是删除B.Id上的所有索引,向B表添加新的标识列,对A.Id执行相同操作,然后向A(BId_New INT)添加新的空列,更新A然后使BId_New不为null。另一种方法是将表的数据保存到复制的表,截断A和B表,然后更改其模式并将复制的表中的值插入到实际的表中。哪种方式更好,在什么情况下?
答案 0 :(得分:0)