修改列类型并替换数据

时间:2013-04-29 12:31:39

标签: sql-server

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

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

Table Student 
ID   Name    AccessToLap
1    Mike    1

Table AccessType
ID   Name
1    Allow
2    Deny

如何将列AccessToLabint更改为varchar,并将值从1更改为Allow并从2更改为Deny而不删除并重新创建表。

1 个答案:

答案 0 :(得分: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'