求论坛达人能帮帮我,万分感谢!!
13 个解决方案
#1
直接关联查询就好了吧。
#2
declare @sql varchar(max)
set @sql=''
select @sql=@sql+'EXEC sp_rename ' '''a.name''' +',' + '''b.字段名''' +'COLUMN' from syscolumns as a inner join tb2 as b on a.编码=b.编码 where a.id=object_id('tb')
exec(@sql)
#3
没怎么看懂,我再说下我具体情况吧
比如有个表名叫tb1,然后字段名分别为1,2,3,4
另一个表名叫tb2,.然后字段名为编码和名称,并且编码值为1,2,3,4;名称值为上海,北京,南京,广州
现在就是要把tb1的字段名批量改为上海,北京,南京,广州
麻烦您再看下这个具体怎么写?
比如有个表名叫tb1,然后字段名分别为1,2,3,4
另一个表名叫tb2,.然后字段名为编码和名称,并且编码值为1,2,3,4;名称值为上海,北京,南京,广州
现在就是要把tb1的字段名批量改为上海,北京,南京,广州
麻烦您再看下这个具体怎么写?
#4
其实就是根据 SYSCOLUMNS表查询出 TB1所有的字段
然后与TB2关联
然后用sp_rename 这个存储过程来重新命名。
我用的是动态拼接 因为没有环境 所以就大概写了下,你可以自己去拼一下语句。
然后与TB2关联
然后用sp_rename 这个存储过程来重新命名。
我用的是动态拼接 因为没有环境 所以就大概写了下,你可以自己去拼一下语句。
#5
declare @sql varchar(100)
set @sql=''
select @sql=@sql+'exec sp_rename '+'''a.name''' +',' + '''b.name''' +','+'''COLUMN'''+' from syscolumns a inner join Table_2 as b on a.name=b.code where a.id=object_id('+'''Table_1'''+')'
exec(@sql)
我改成上面的,还是会提示from有语法错误
set @sql=''
select @sql=@sql+'exec sp_rename '+'''a.name''' +',' + '''b.name''' +','+'''COLUMN'''+' from syscolumns a inner join Table_2 as b on a.name=b.code where a.id=object_id('+'''Table_1'''+')'
exec(@sql)
我改成上面的,还是会提示from有语法错误
#6
declare @sql varchar(100)
set @sql=''
select @sql=@sql+'EXEC sp_rename ' '''a.name''' +',' + '''b.name''' +','+'''COLUMN''' from syscolumns a inner join Table_2 as b on a.name=b.code where a.id=object_id('Table_1')
exec(@sql)
这样也有语法错误
第 3 行: ''a.name'' 附近有语法错误
#7
这里面后来我看看改成
EXEC sp_rename 'a.name','b.name','COLUMN'
from syscolumns a inner join T1 as b on a.name=b.code where a.id=object_id('T2')
提示 from语法错误
#8
你这样肯定做啊,被F大看见扁到死~~
话说,你是要查询的时候显示的列名, 还是就是要直接对列重命名了~
话说,你是要查询的时候显示的列名, 还是就是要直接对列重命名了~
#9
试试这个
declare @sql varchar(100)
set @sql=''
select @sql=@sql+'EXEC sp_rename '''+a.name+''','''+b.name+''',''COLUMN'''
from syscolumns a inner join T1 as b on a.name=b.code where a.id=object_id('T2')
#10
他是重命名 要是显示的话就简单了。所以需要SP_RENAME
要么就先查询出来 然后DROP 掉 然后统一添加。
#11
哦,我看见
将查询出来这些字段名为编码的改为对应的名称
以为是要作为列别名
#12
好了 帮你写了个例子
--建表
create table tb1
([code] varchar(max))
create table tb2
(code1 varchar(max),
name varchar(100)
)
--插入数据
insert into tb2 select 'code','上海'
--select * from tb2
declare @sql varchar(1000)
set @sql=''
select @sql=@sql+'EXEC sp_rename ''tb1.'+a.name+''','''+b.name+''',''COLUMN'''
from syscolumns a inner join Tb2 as b on a.name=b.code1 where a.id=object_id('Tb1')
--print @sql
--EXEC sp_rename 'tb1.code','上海','COLUMN'
exec (@sql)
--检查是否更改
select name from syscolumns a where id=object_id('Tb1')
/*
name
--------------------------------------------------------------------------------------------------------------------------------
上海*/
drop table tb1,tb2
#13
太给力了,谢谢啊,我是初学者,请多多指教了
#1
直接关联查询就好了吧。
#2
declare @sql varchar(max)
set @sql=''
select @sql=@sql+'EXEC sp_rename ' '''a.name''' +',' + '''b.字段名''' +'COLUMN' from syscolumns as a inner join tb2 as b on a.编码=b.编码 where a.id=object_id('tb')
exec(@sql)
#3
没怎么看懂,我再说下我具体情况吧
比如有个表名叫tb1,然后字段名分别为1,2,3,4
另一个表名叫tb2,.然后字段名为编码和名称,并且编码值为1,2,3,4;名称值为上海,北京,南京,广州
现在就是要把tb1的字段名批量改为上海,北京,南京,广州
麻烦您再看下这个具体怎么写?
比如有个表名叫tb1,然后字段名分别为1,2,3,4
另一个表名叫tb2,.然后字段名为编码和名称,并且编码值为1,2,3,4;名称值为上海,北京,南京,广州
现在就是要把tb1的字段名批量改为上海,北京,南京,广州
麻烦您再看下这个具体怎么写?
#4
其实就是根据 SYSCOLUMNS表查询出 TB1所有的字段
然后与TB2关联
然后用sp_rename 这个存储过程来重新命名。
我用的是动态拼接 因为没有环境 所以就大概写了下,你可以自己去拼一下语句。
然后与TB2关联
然后用sp_rename 这个存储过程来重新命名。
我用的是动态拼接 因为没有环境 所以就大概写了下,你可以自己去拼一下语句。
#5
declare @sql varchar(100)
set @sql=''
select @sql=@sql+'exec sp_rename '+'''a.name''' +',' + '''b.name''' +','+'''COLUMN'''+' from syscolumns a inner join Table_2 as b on a.name=b.code where a.id=object_id('+'''Table_1'''+')'
exec(@sql)
我改成上面的,还是会提示from有语法错误
set @sql=''
select @sql=@sql+'exec sp_rename '+'''a.name''' +',' + '''b.name''' +','+'''COLUMN'''+' from syscolumns a inner join Table_2 as b on a.name=b.code where a.id=object_id('+'''Table_1'''+')'
exec(@sql)
我改成上面的,还是会提示from有语法错误
#6
declare @sql varchar(100)
set @sql=''
select @sql=@sql+'EXEC sp_rename ' '''a.name''' +',' + '''b.name''' +','+'''COLUMN''' from syscolumns a inner join Table_2 as b on a.name=b.code where a.id=object_id('Table_1')
exec(@sql)
这样也有语法错误
第 3 行: ''a.name'' 附近有语法错误
#7
这里面后来我看看改成
EXEC sp_rename 'a.name','b.name','COLUMN'
from syscolumns a inner join T1 as b on a.name=b.code where a.id=object_id('T2')
提示 from语法错误
#8
你这样肯定做啊,被F大看见扁到死~~
话说,你是要查询的时候显示的列名, 还是就是要直接对列重命名了~
话说,你是要查询的时候显示的列名, 还是就是要直接对列重命名了~
#9
试试这个
declare @sql varchar(100)
set @sql=''
select @sql=@sql+'EXEC sp_rename '''+a.name+''','''+b.name+''',''COLUMN'''
from syscolumns a inner join T1 as b on a.name=b.code where a.id=object_id('T2')
#10
他是重命名 要是显示的话就简单了。所以需要SP_RENAME
要么就先查询出来 然后DROP 掉 然后统一添加。
#11
哦,我看见
将查询出来这些字段名为编码的改为对应的名称
以为是要作为列别名
#12
好了 帮你写了个例子
--建表
create table tb1
([code] varchar(max))
create table tb2
(code1 varchar(max),
name varchar(100)
)
--插入数据
insert into tb2 select 'code','上海'
--select * from tb2
declare @sql varchar(1000)
set @sql=''
select @sql=@sql+'EXEC sp_rename ''tb1.'+a.name+''','''+b.name+''',''COLUMN'''
from syscolumns a inner join Tb2 as b on a.name=b.code1 where a.id=object_id('Tb1')
--print @sql
--EXEC sp_rename 'tb1.code','上海','COLUMN'
exec (@sql)
--检查是否更改
select name from syscolumns a where id=object_id('Tb1')
/*
name
--------------------------------------------------------------------------------------------------------------------------------
上海*/
drop table tb1,tb2
#13
太给力了,谢谢啊,我是初学者,请多多指教了