CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

Update的简单问题

楼主zwx963536()2003-11-01 13:13:07 在 MS-SQL Server / 基础类 提问

insert   into   t1   select   *   from   t2   where   ……  
  插入数据可以像上面那样写,Update可以像上面那种方式写吗?用一个表的数据去更新更一个表的数据,不想用set 问题点数:100、回复次数:13Top

1 楼gmlxf(烛光)回复于 2003-11-01 13:17:10 得分 0

update   t1   set   col1=(select   col1   from   t2),set   col2=(select   col2   from   t2)...Top

2 楼zwx963536()回复于 2003-11-01 13:18:10 得分 0

楼上的那种写法不是更麻烦?Top

3 楼gmlxf(烛光)回复于 2003-11-01 13:18:10 得分 0

不用set好象不行吧。Top

4 楼zwx963536()回复于 2003-11-01 13:19:00 得分 0

因为有近20个字段要更新,我不想一个一个的写   colN=***Top

5 楼gmlxf(烛光)回复于 2003-11-01 13:20:32 得分 0

update   tname   set   ..  
  要set的。Top

6 楼gmlxf(烛光)回复于 2003-11-01 13:21:12 得分 40

写好了一次以后就不要写了。Top

7 楼gmlxf(烛光)回复于 2003-11-01 13:22:16 得分 0

或者你可以  
  insert   新的一行,然后删除原来的。  
  不过有id号的要注意。将identity_insert   设置为onTop

8 楼pengdali()回复于 2003-11-01 13:36:21 得分 30

update   表1   set   表1.列1=表2.列1   from   表2   where   表1.id=表2.idTop

9 楼pengdali()回复于 2003-11-01 13:37:19 得分 0

update   表1   set   列1=tem.列1,列2=tem.列2,列3=tem.列3   ........   from   表2   as   tem   where   表1.id=表2.idTop

10 楼txlicenhe(马可)回复于 2003-11-01 13:41:59 得分 0

1:用set   一个个字段修改  
  2:   先delete,再insert  
  Top

11 楼zjcxc(邹建)回复于 2003-11-01 14:46:28 得分 0

update必须要逐个写字段  
  Top

12 楼zjcxc(邹建)回复于 2003-11-01 14:54:26 得分 30

--如果嫌写麻烦,可以用下面的类似下面的方法,动态生成SQL语句:  
   
  declare   @tb1   sysname,@tb2   sysname  
  declare   @sql   varchar(8000)  
   
  select   @tb1='表1'                 --被更新的表  
  ,@tb2='表2'           --取数据的表  
  ,@sql='update   '+@tb1+'   set   '  
   
  select   @sql=@sql+a.name+'=b.'+b.name+','  
  from(  
  select   name   from   syscolumns   where   object_id(@tb1)=id   and   status<>0x80  
  )   a   inner   join(  
  select   name   from   syscolumns   where   object_id(@tb2)=id   and   status<>0x80  
  )   b   on   a.name=b.name --按字段名相同,如果按字段顺序,改用:   a.colid=b.colid  
   
  set   @sql=left(@sql,len(@sql)-1)  
  exec(@sql+'   from   '+@tb1+'   a,'+@tb2+'   b   where   条件')Top

13 楼Dennis618(明月照沟渠)回复于 2003-11-01 16:01:27 得分 0

不用set?不行吧,先刪除原來的,再insert   進去.Top

相关问题

  • Update简单问题?
  • 超简单的UPDATE:
  • 简单问题:ADO的update!!!!!
  • 简单的问题,delete,and update
  • update简单触发器
  • 求简单UPDATE语句
  • 一个oracle中简单的update问题。
  • on_command & on_update_command_ui相关简单问题
  • 问一个很简单的update问题!
  • 新手简单问题,关于update set

关键词

  • 字段
  • 数据
  • sql
  • tb
  • tem
  • 表
  • 更新
  • col
  • update
  • insert

得分解答快速导航

  • 帖主:zwx963536
  • gmlxf
  • pengdali
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo