CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

有关数据库问题在线等

楼主xuwei265135(天啦)2005-01-26 15:38:32 在 Web 开发 / ASP 提问

我有两个表分别为report,back_report。  
  我想把在report表里搜索到的纪录,插入back_report  
  sql语句为:insert   into   BACK_REPORT   select   *   from   REPORT   where   name='1'  
  back_report里面没有纪录可以成功,如果back_report有“select   *   from   REPORT   where   name='1'”搜索到的纪录,就会报错。  
  请问高手们怎么实现back_report里面有的纪录不插? 问题点数:100、回复次数:18Top

1 楼yyq136(生活的理想,就是为了理想的生活)回复于 2005-01-26 15:49:07 得分 0

dim   str="1"  
  sql="insert   into   BACK_REPORT   select   *   from   REPORT   where   name='"&str&"'"  
  conn.exec(sql)  
  语句应该没有问题的  
  如果不行是不是你的两个表的结构不一样啊;你把所有想插入的字段都显示出来试试看.Top

2 楼ronakitty(毓苫)回复于 2005-01-26 15:54:54 得分 0

set   rs=server.createobject("ADODB.Recordset")  
  sql="select   *   from   report"  
  rs.open   sql,conn,1,1  
   
  set   objRs=server.createobject("ADODB.Recordset")  
  objSQL="select   *   from   back_report"  
  objRs.open   objSQL,conn,1,3  
   
  objRs.addnew  
  objRs("a")=rs("a")  
  objRs("b")=rs("b")  
          ┋  
  objRs.updateTop

3 楼xuwei265135(天啦)回复于 2005-01-26 16:07:48 得分 0

表里的列太多了,还有和我那个效果也是一样的,不行啊  
  我原来的SQL:  
  sql="insert   into   db2admin.BACK_REPORT   select   *   from   REPORT   "+tiaojian1  
  set   rs=conn.Execute   (sql)  
  如果back_report里面有从report搜索到的记录就会报错,没有就正常!  
  错误信息:  
  Microsoft   VBScript   编译器错误   错误   '800a03f6'    
   
  缺少   'End'    
   
  /iisHelp/common/500-100.asp,行242    
   
  Microsoft   OLE   DB   Provider   for   ODBC   Drivers   错误   '80004005'    
   
  [IBM][CLI   Driver][DB2/NT]   SQL0803N   INSERT   语句、UPDATE   语句中的一个或多个值,或者由   DELETE   语句引起的外部关键字更新是无效的,因为它们将为具有主关键字、唯一约束或唯一索引的表生成重复的行。   SQLSTATE=23505    
   
  /work/alldao.asp,行68    
  Top

4 楼kendo7()回复于 2005-01-26 16:08:14 得分 0

两个表结构必须一样,被插入的表不能有自增的字段Top

5 楼cheng17(+天空+)回复于 2005-01-26 16:09:41 得分 0

dim   str="1"  
  sql="insert   into   BACK_REPORT   select   *   from   REPORT   where   [name]='"&str&"'"  
  conn.exec(sql)  
  Top

6 楼dangstick(dangstick)回复于 2005-01-26 16:11:59 得分 0

检查两个表的结构是否相同Top

7 楼xuwei265135(天啦)回复于 2005-01-26 16:15:19 得分 0

都已样  
  sql="insert   into   BACK_REPORT   select   *   from   REPORT   "+tiaojian1  
  set   rs=conn.Execute   (sql)  
  也可以,就是比如   "select   *   from   REPORT   "+tiaojian1中搜索到ID号为1,2,8,9的记录,但是back_report中已经有了ID号为1的纪录了,这样就报错了,插不进去了,如果back_report中没有ID为1,2,8,9中的纪录就可以执行。  
  不知道大家明不明白了?Top

8 楼myvicy(我来也!)回复于 2005-01-26 16:18:15 得分 0

数据库结构有错误。Top

9 楼xuwei265135(天啦)回复于 2005-01-26 16:21:03 得分 0

没有啊结构都一样的,要不为什么back_repoet中没有搜索到的纪录就可执行阿,有了就会报错!Top

10 楼klend(苯鸟(2006))回复于 2005-01-26 16:44:59 得分 0

你应该把主键去掉Top

11 楼AppleBBS(Dicky)回复于 2005-01-26 17:00:20 得分 0

有主键插入重复记录当然不行啊Top

12 楼xuwei265135(天啦)回复于 2005-01-26 17:01:44 得分 0

我有一个主键ID,如果去掉,那肯定会出现多条一样的记录,会增加数据量!还有用什么区别数据阿。Top

13 楼xuwei265135(天啦)回复于 2005-01-26 17:03:01 得分 0

是啊,那怎么判断一下,有的纪录就不插了!?~~Top

14 楼qtxcm(qt)回复于 2005-01-26 17:12:02 得分 90

insert   into   BACK_REPORT     select   a.*   from   REPORT   a   ,BACK_REPORT   b   where     a.name!=b.name  
  试试  
  Top

15 楼hushuang7094(小小小问题)回复于 2005-01-26 17:20:31 得分 10

将从report里面查出来的记录一条一条插入back_report表,在插入之前再判断back_report中是否已存在要插入的记录  
  呵呵,虽然麻烦点,但保准没错!Top

16 楼keelsike(blog.k99k.com)回复于 2005-01-26 17:22:15 得分 0

用存储过程来实现Top

17 楼myvicy(我来也!)回复于 2005-01-26 17:22:44 得分 0

出错的是你的主键  
   
   
  没有数据时什么都不执行当然不会出错了啊~!Top

18 楼xuwei265135(天啦)回复于 2005-01-27 09:03:42 得分 0

myvicy(在线解决(因为我不会骗人,所以我最恨别人骗我。))    
  不是主键错啦,表结构都是一样的,我是说Back_report里没有在report中搜索到的数据就可以,不是说没有数据。  
  不过问题还是解决了  
    qtxcm(qt)   正解Top

相关问题

  • 有关数据库的问题。(200(分)在线等待)
  • 在线等待!~有关数据库数据修改的问题!
  • 和数据库有关的简单问题!(在线等待)
  • 那有关于数据库发展的论文,在线等待
  • 有关用Tquery连接SQl数据库的问题(在线等)
  • 一个有关数据库的问题,在线等,比较急!!
  • 有关查询数据库的问题,在线等。。。。急。。。。。
  • 有关将图片写入SQL数据库并将图片读出数据库的问题,谢谢,在线等!
  • 在线???数据库问题
  • 数据库(在线等)

关键词

  • report
  • 语句
  • 数据
  • 结构
  • 执行
  • db
  • sql
  • back
  • 报错
  • tiaojian

得分解答快速导航

  • 帖主:xuwei265135
  • qtxcm
  • hushuang7094

相关链接

  • Web开发类图书

广告也精彩

反馈

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