EXEC sp_rename 'userInf.[userName]', '用户名', 'COLUMN'
但是出现提示:
警告: 更改对象名的任一部分都可能会破坏脚本和存储过程。
不知道这样做会不会对程序造成什么影响,想上来问一下,希望各位高手指点指点。
我的想法:如果alter修改列名,将原有的列删除,再重新插入,这样的话这一列原有的数据将丢失,很苦恼。不知道什么样的方法才是正确的。
12 个解决方案
#1
自己先顶起来
#2
EXEC sp_rename '表名.列名','新列名','column'
#3
正解
#5
以上两位都没有理解我的意思
#6
create table userInf
(
userName nvarchar(20)
)
insert into userInf select 'aa'
insert into userInf select 'bb'
insert into userInf select 'cc'
exec sp_rename 'userInf.userName','用户名','column'
select * from userInf
用户名
--------------------
aa
bb
cc
(3 行受影响)
#7
只是警告而已
它是担心万一有程序引用这个旧列名,
但现在改拉,那程序就会出错而已
#8
表自身的数据不会丢失这个你不用担心,只是要考虑你以前其他地方的引用
#9
嗯,表自身的数据不会丢失就好,至于其他地方的引用,我会在重命名的同时,将关联的地方都修改过来就行了。
#10
添加一个列,把要改变列名的数据拷贝一份到新建的列中,然后把旧的列删除,然后新建一个新的列,把数据拷贝回去,然后删除第一次新建的列。不就可以了啊,就是有点麻烦。
#11
你自己都给出答案了
如果这样,就啥关系也没有
#12
谢谢各位了
#1
自己先顶起来
#2
EXEC sp_rename '表名.列名','新列名','column'
#3
正解
#4
#5
以上两位都没有理解我的意思
#6
create table userInf
(
userName nvarchar(20)
)
insert into userInf select 'aa'
insert into userInf select 'bb'
insert into userInf select 'cc'
exec sp_rename 'userInf.userName','用户名','column'
select * from userInf
用户名
--------------------
aa
bb
cc
(3 行受影响)
#7
只是警告而已
它是担心万一有程序引用这个旧列名,
但现在改拉,那程序就会出错而已
#8
表自身的数据不会丢失这个你不用担心,只是要考虑你以前其他地方的引用
#9
嗯,表自身的数据不会丢失就好,至于其他地方的引用,我会在重命名的同时,将关联的地方都修改过来就行了。
#10
添加一个列,把要改变列名的数据拷贝一份到新建的列中,然后把旧的列删除,然后新建一个新的列,把数据拷贝回去,然后删除第一次新建的列。不就可以了啊,就是有点麻烦。
#11
你自己都给出答案了
如果这样,就啥关系也没有
#12
谢谢各位了