首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么替换临时表里某一个字段的字段名称中的一个字符

2012-01-09 
如何替换临时表里某一个字段的字段名称中的一个字符?如何替换临时表里某一个字段的字段名称中的一个字符?

如何替换临时表里某一个字段的字段名称中的一个字符?
如何替换临时表里某一个字段的字段名称中的一个字符?
只知道这个字段的名称里含有 e 字符,不知这个字段的全名。想把含有的 e 替换成 f ,如何写语句?

下面的语句只是针对字段里的内容的,不是针对字段名的。用不上的。

update #TmpA set colfield1=replace(colfield1,'e','f')



[解决办法]

SQL code
declare @sql varchar(1000), --sql语句        @nCol int --你要改的列set @nCol=2 --假设你要改第2列set @sql='update #TmpA set ' + col_name(N'#TmpA',@nCol) + '=replace(' + col_name(N'#TmpA',@nCol) + ', ''e'', ''f'')'exec(@sql)
[解决办法]
替换列名用sp_rename 函数


SQL code
use tempdbdeclare @columnNameOld varchar(100),@columnNameNew varchar(100)select @columnNameOld = name from syscolumns where name like '%e%' and id = object_id('#TmpA')select @columnNameNew = replace(@columnNameOld,'e','f')select @columnNameOld = '#TmpA.' + @columnNameOldEXECUTE sp_rename @columnNameOld, @columnNameNew, 'COLUMN'
[解决办法]
USE tempdb
EXECUTE sp_rename '#TmpA.colfield1', 'colfifld1', 'COLUMN'
[解决办法]
临时表的字段不能修改,因为临时表都是存储在msdn库里面,而不是存储在sysobjects和syscolumns等系统表里面
[解决办法]
SQL code
--如果是固定表:create table LastA (English int, Chinese int,USA int)insert LastA select 1,2,3select * from LastA/*English     Chinese     USA         ----------- ----------- ----------- 1           2           3*/declare @sql varchar(8000)select @sql=isnull(@sql+char(10),'')+'exec sp_rename ''LastA.'+name+''','''+replace(name,'e','f')+''',''column'''    from syscolumns    where id=object_id('LastA') and charindex('e',name)>0exec (@sql)select * from LastA/*fnglish     Chinfsf     USA         ----------- ----------- ----------- 1           2           3*/drop table LastA 

热点排行