我在SQL Server 2008 R2中有一个包含1亿条记录的表。
其中一列是另一个表的外键。
Table Student
ID Name AccessToLap
1 Mike 1
Table AccessType
ID Name
1 Allow
2 Deny
如何将列AccessToLab
从int
更改为varchar
,并将值从1
更改为Allow
并从2
更改为Deny
而不删除并重新创建表。
答案 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'