日期:2014-05-18  浏览次数:20370 次

用sp_rename更改列名时,sql server 自动生成脚本为什么要分两次完成?
用sp_rename更改表列名
在查询分器里输入  
EXECUTE   sp_rename   N 'mytable.col1 ',   N 'col2 ',   'COLUMN '
可以正常更改

但在企业管理器> 表设计> 更改列名   ,然后查看更改脚本
可以看到是如下,

EXECUTE   sp_rename   N 'mytable.col1 ',   N 'Tmp_col1 ',   'COLUMN '
GO
EXECUTE   sp_rename   N 'mytable.Tmp_col1 ',   N 'col2 ',   'COLUMN '
GO

即,先改名为临时名,再将临时名改为最终名。
为什么要这样做?

------解决方案--------------------
不知道它是什么原理, 估计是一种固定算法得出来的脚本吧.
sql 2005也是这样的.