2

我在 SQL Server 2008 R2 中有一个包含 1 亿条记录的表。

其中一列是另一个表的外键。

Table Student 
ID   Name    AccessToLap
1    Mike    1

Table AccessType
ID   Name
1    Allow
2    Deny

如何在不删除和重新创建表的情况下将列更改为to并将值从 to 更改为AccessToLabto和从to更改。intvarchar1Allow2Deny

4

1 回答 1

4
alter table Student add AccessType varchar(50);

update  s
set     AccessType = at.Name
from    Student s
join    AccessType at
on      at.ID = s.AccessToLap;

alter table Student drop column AccessToLap;

exec sp_rename 'Student.AccessType', 'AccessToLap', 'COLUMN'
于 2013-04-29T12:34:28.153 回答