在SQL SERVER中批量修改字段名的办法!又是在CSDN查到的,哈哈

卫衣 / 双肩包 / T 恤/羽绒服等任选,下单送 CSDN 年卡 程序员周边任选一款实物,直接赠送 CSDN 会员年卡+ Coding Plan,写代码学习装备一起拿下 立即抢购

 

更正:应该是

select 'EXEC sp_rename '''+name+'.[老名]'','+ '''新名'',''COLUMN'''   from   sysobjects  a    where   type='U'
  and   exists(select   1   from   syscolumns   b   where   b.name='老名' and b.id=a.id )


在SQL SERVER中怎么批量修改字段名

楼主gslrq([夜归人]http://www.west998.com/) 2003-10-26 19:47:40 在 MS-SQL Server / 应用实例 提问

在SQL   SERVER   数据库中,有好多300多个表,想将多个表中字段名为“Number”的  
  字段名重命名,怎么作? 问题点数:0、回复次数:4Top

1 楼yone(yone)回复于 2003-10-26 20:11:48 得分 0

select   '   EXEC   sp_rename   '   +   name+'.[Number],'+   '''newname'',''COLUMN'''   from   sysobjects   where   type   ='U'  
   
  执行这段SQL,取返回记录,再在QUERY   ANALYZER中执行Top

2 楼yone(yone)回复于 2003-10-26 20:16:33 得分 0

补充以下在加一个条件  
   
  select   '   EXEC   sp_rename   '   +   name+'.[Number],'+   '''newname'',''COLUMN'''   from   sysobjects   a   where   type   ='U'    
  and   exist(select   1   from   syscolumns   b   where   b.name   ='Number'   and   b.id   =   a.id   )  
   
  执行这段SQL,取返回记录,再在QUERY   ANALYZER中执行  
  Top

3 楼pengdali()回复于 2003-10-26 21:25:13 得分 0

declare     cursor_insert   cursor   for   select   d.name   from   syscolumns   a,   sysobjects   d   where   a.id=d.id   and   d.xtype='U'   and   a.name=@旧列名  
  declare   @i   varchar(500)  
  open   cursor_insert  
  fetch   cursor_insert   into   @i  
  while   @@fetch_status=0  
  begin  
      set   @i=@i+'.'+@旧列名  
      exec   sp_rename   @i,@新列名  
      fetch   cursor_insert   into   @i  
  end  
  close   cursor_insert  
  deallocate   cursor_insertTop

4 楼pengdali()回复于 2003-10-26 21:25:40 得分 0

举例:  
   
   
   
  declare   @旧列名   varchar(500),@新列名   varchar(500)  
  select   @旧列名='Number',@新列名='新列名'  
   
   
   
   
  declare     cursor_insert   cursor   for   select   d.name   from   syscolumns   a,   sysobjects   d   where   a.id=d.id   and   d.xtype='U'   and   a.name=@旧列名  
  declare   @i   varchar(500)  
  open   cursor_insert  
  fetch   cursor_insert   into   @i  
  while   @@fetch_status=0  
  begin  
      set   @i=@i+'.'+@旧列名  
      exec   sp_rename   @i,@新列名  
      fetch   cursor_insert   into   @i  
  end  
  close   cursor_insert  
  deallocate   cursor_insert

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--------------------------------------------

 

更正:应该是

select 'EXEC sp_rename '''+name+'.[老名]'','+ '''新名'',''COLUMN'''   from   sysobjects  a    where   type='U'
  and   exists(select   1   from   syscolumns   b   where   b.name='老名' and b.id=a.id )

 

 

 

---------------------------------------------

sqlserver 如何批量更改表名和字段名前缀?
进入用户个人空间
加为好友
发送私信
在线聊天
  • lvpin258
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
  • 结帖率:
发表于:2009-01-18 17:20:18 楼主
sqlserver数据库,批量更改表名和字段的前缀,
如,现在有有若干表,ABC_admin,ABC_product,ABC_user,ABC_upload等,前缀都是ABC,
每个表里的字段名也是ABC开头,现在想把ABC改成EFG,如何能批量修改?
5  修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天
  • josy
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2009-01-18 17:24:371楼 得分:0
先从sysobjects表取出表名,再rename
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天
  • lvpin258
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2009-01-18 17:27:212楼 得分:0
能不能具体点啊?
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天
  • josy
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2009-01-18 18:05:243楼 得分:0
SQL code
           
select * from sysobjects where xtype = ' u ' and name like ' ABC_% '
-- 这样可以查出你要修改的表

sp_rename oldname,newname
-- 这样可以修改表名


看了一个以前邹老大给的例子


exec sp_msforeachtable
@command1 = '
declare @o sysname,@n sysname
select @o=
'' ? ''
,@n=stuff(@o,1,charindex(
'' ].[ABC_ '' ,@o)+6, '''' )
,@n=left(@n,len(@n)-1)
exec sp_rename @o,@n
' ,
@whereand = ' and o.name like '' ABC_% '''

修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天
  • fcuandy
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
  • 3

发表于:2009-01-18 18:30:164楼 得分:0
SQL code
           
use test
go

create table abc_1(abc_id int )
create table abc_2(abc_xxid int )
create table abc_aaa(abc_dd int )
go

-- 修改列名
declare @s varchar ( 8000 )
select @s = isnull ( @s + char ( 10 ) , '' ) + ' exec sp_rename '' [ ' + b.name + ' ].[ ' + a.name + ' ] '' , ''' + stuff (a.name, 1 , 3 , ' def ' ) + ''' , '' column '''
from syscolumns a
inner join
(
select name,id from sysobjects where xtype = ' u ' and name like ' abc/_% ' escape ( ' / ' )
) b
on a.id = b.id
where a.name like ' abc/_% ' escape ( ' / ' )
exec ( @s )

/*
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
column 已重命名为 'def_id'。
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
column 已重命名为 'def_xxid'。
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
column 已重命名为 'def_dd'。
*/

-- 修改表名
exec sp_msForeachTable @command1 = N ' declare @s varchar(100);select @s=left(stuff( '' ? '' ,1,10, '' def '' ),len( '' ? '' )-8);exec sp_rename '' ? '' ,@s ' , @whereand = ' and name like '' abc/_% '' escape( '' / '' ) '
/*
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
object 已重命名为 'def_1'。
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
object 已重命名为 'def_2'。
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
object 已重命名为 'def_aaa'。

*/
go

drop table def_1,def_2,def_aaa
go

修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天
  • josy
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2009-01-18 18:38:125楼 得分:0
引用 3 楼 josy 的回复:
SQL codeselect * from sysobjects where xtype='u' and name like 'ABC_%'
--这样可以查出你要修改的表

sp_rename oldname,newname
--这样可以修改表名


看了一个以前邹老大给的例子


exec  sp_msforeachtable   
@command1='
  declare  @o  sysname,@n  sysname   
  select  @o=''?'' 
  ,@n=stuff(@o,1,charindex(''].[ABC_'',@o)+6,'''') 
  ,@n=left(@n,len(@n)-1) 
  exec  sp_renam…

看错了,以为是把ABC_去掉,ABC_改为EFG_参考下面语句
SQL code
           
exec sp_msforeachtable
@command1 = '
declare @o sysname,@n sysname
select @o=
'' ? ''
,@n=stuff(@o,1,charindex(
'' ].[ABC_ '' ,@o)+6, '' EFG_ '' )
,@n=left(@n,len(@n)-1)
exec sp_rename @o,@n
' ,
@whereand = ' and o.name like '' ABC_% '''

vue elmentui ueditor 数学公式 +新增自定义工具栏按钮 编辑器 因为上传数学题时。填空题横线统一的让用户点击工具栏的一个按钮实现。然后数学公式没有方程式的功能,需要加个工具实现这个功能。然后下载项目打开命令行,再输入npm install 下载包依赖。在npm run dev 运行就行啦 立即下载

相关推荐

无人机【基于多段杜宾斯Dubins路径协同路径规划复杂威胁环境下的无人机协同路径规划研究Matlab代码实现

无人机】【基于多段杜宾斯Dubins路径协同路径规划复杂威胁环境下的无人机协同路径规划研究Matlab代码实现

目标水母搜索算法MOJS求解无人机协同路径规划(提供MATLAB代码

水母搜索算法(artificial Jellyfish Search (JS) optimizer)是于2020年提出的一种基于新型优化算法。具有寻优能力强,收敛速度快等特点。人工水母搜索算法模拟水母的搜寻行为,涉及到它们跟随洋流,它们在水母群中的运动(主动运动和被动运动),这些运动之间切换的时间控制机制,以及它们汇聚成水母簇的过程。算法中,存在以上两种假定:水母要么跟随洋流,要么在群体内部移动,而“时间控制机制”控制着这些移动类型之间的转换。水母在海洋中移动寻找食物。 ...

IT猿手 3225

协同任务】基于matlab蚁群算法无人机攻击调度【含Matlab源码 034期】

蚁群算法无人机攻击调度 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 4156

Dubins路径规划方法处理速度约束下的机器人路径规划

Dubins方法简介 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 程序代码:Github 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带...

LiXin@SMU的专栏 5572

Dubins曲线的计算与实现

Dubins曲线计算与实现 1.dubins曲线简介 dubins曲线是在满足曲率约束和规定的始端和末端的切线(进入方向)的条件下,连接两个二维平面的最短路径,而且限制目标只能向前行进。 下图给出一个dubins曲线的例子,其中a表示起始位置,该出的箭头表示当前的速度方向,b表示目标位置,箭头表示结束方向,物体会沿着圆弧于东后,再经过一段直线到,进入b的圆弧。这里两个圆的半径相同,均为目标的最小转...

clong139的博客 2万+

【SWO三维路径规划】蜘蛛蜂算法SWO无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)【含Matlab源码 3965期】

蜘蛛蜂算法SWO无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角) 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2251
上一篇: 手把手教你把Vim改装成一个IDE编程环境(图文)
下一篇: CMsChart使用方法
skyremember
博客等级 码龄20年 203粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值