VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 827|回复: 6

如何快速改变列名

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-10 20:00:01 | 显示全部楼层 |阅读模式
在sql里,有100个不同的列名,我想将其都加_fw,怎样能快速实现。
用sql语句呢?还是什么方法?

a  b   c   d....
1  1   1   1

我想变成

a_fw  b_fw   c_fw   d_fw...
1      1      1      1
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-6-2 21:00:01 | 显示全部楼层
select name+'_fw' from syscolumns where id=object_id('表名')
order by colid
回复

使用道具 举报

0

主题

40

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-6-3 09:30:01 | 显示全部楼层
update t2
set t2.name=t2.name+'_fw'
from sysobjects t1,syscolumns t2
where t1.id=t2.id and t1.xtype='u' and t1.name='你的表名'
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-6-3 11:15:02 | 显示全部楼层

create table T(a int, b int,  c int, d int)
insert T select 1, 1, 1,1

declare @sql varchar(8000)
set @sql='select '
select @sql=@sql+name+'_fw='+name+',' from syscolumns where id=object_id('T')
order by colid
select @sql=left(@sql, len(@sql)-1), @sql=@sql+' from T'
--print @sql
exec(@sql)

--result
a_fw        b_fw        c_fw        d_fw        
----------- ----------- ----------- -----------
1           1           1           1
回复

使用道具 举报

0

主题

28

帖子

25.00

积分

新手上路

Rank: 1

积分
25.00
发表于 2020-6-3 19:45:01 | 显示全部楼层
---设置可更新系统表
sp_configure 'allow updates',1
GO
RECONFIGURE WITH OVERRIDE
GO

update syscolumns  set name=name+'_fw' from where id=object_id('表名')


--记住最后一定要设置回来.

sp_configure 'allow updates',0
GO
RECONFIGURE WITH OVERRIDE
GO
/*
否则你的系统很危险.
建议你不要这样做.
最好利用存储过程or其他方法来更新.
*/
回复

使用道具 举报

0

主题

126

帖子

73.00

积分

新手上路

Rank: 1

积分
73.00
发表于 2020-6-3 20:00:02 | 显示全部楼层
楼上正解,UP
回复

使用道具 举报

0

主题

126

帖子

73.00

积分

新手上路

Rank: 1

积分
73.00
发表于 2020-6-3 21:00:02 | 显示全部楼层
再上一楼的~
create table T(a int, b int,  c int, d int)
insert T select 1, 1, 1,1

declare @sql varchar(8000)
set @sql='select '
select @sql=@sql+name+'_fw='+name+',' from syscolumns where id=object_id('T')
order by colid
select @sql=left(@sql, len(@sql)-1), @sql=@sql+' from T'
--print @sql
exec(@sql)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表