哭了,昨天的帖子结了,再用200分重发,一个关于sql内部的数据导入问题![简单+我是菜鸟](200分)

  • 主题发起人 主题发起人 linger_ok
  • 开始时间 开始时间
L

linger_ok

Unregistered / Unconfirmed
GUEST, unregistred user!
详细过程:在sql server 2000下有两个database test1,test2,其中各有一个名字为bugs的
表。我想把test2库下bugs的一些数据导入到test1中。其余过程略,在导入方法时,选择
“用一条查询指定要传输的数据”我的查询语句是这样的
“select * from Bugs where Resolution='Postponed'”
但是在执行操作的时候会出现这样的提示:
“不能在具有唯一索引idxbugid”的对象‘bugs’插入重复键的行“
我的问题就是希望在不改变库表结果的前提下如何导入数据而且避免数据的重复导入。
希望可以得到详细的答复,我很笨的,谢谢
 
就是你的两个表里面的索引都是idxbugid,而且有相同的值。所以不让你插入。
你可以先判断要插入的表里面的idxbugid是否和你表里面原来的idxbugid一样,
看以那个表为准了。可以选择更新。
不一样就插入吧。
 
道理我明白,但是如何操作呢?或者说如何写查询呢?帮帮忙吧,5555
 
唯一索引idxbugid??????
如果你一定要这样做,再加个索引就行了,不然你的数据是不行的,
只能这样,数据不全,但能保持唯一
insert into table1 select distinct idxbugid,字段名 from table2..........
 
实在懒得写语言的化
用向导好了
 
insert into test2.bugs( , , , , )
select * from test1.bugs
where Resolution='Postponed' and idxbugid not in
(select idxbugid from test2.bugs)
 
idxbugid是在表上定义的全文索引,并不是在表中的某个字段的名字,请问这样该怎么做呢?
 
insert into test1.dbo.bugs select * from test2.dbo.bugs a
where a.Resolution not in (select Resolution from test1.dbo.bugs)
 
楼上的都写了,没话说,up!
 
都不行啊,我用qinwt的语句提示说不能在某列中插入非空值,请使用带有列的列表,或默认
值为null或insert的语句。上下文,调用getcolumninfo时出错,您的提供程序不支持
dts所要求的所有接口/方法

天呢,没有别的好心人知道了么?
 

爱哭的MM?[:D][:D][:D]
 
那时因为Test1和Test2中Bug表的结构不一样,或者是两个表的字段顺序不一样,
你可以用详细的字段名来代替,
如果不行,与我联系吧; MSN: qianwentian@hotmail.com
 
结构和字段顺序是完全一样的啊,不过那个字段里面的内容都是<Binary>,我也不大
清楚是做什么的
 
你早讲呀,Text和Image字段不可以这样插入的
 
那怎么办呀?拜托老大了
 
用这几个图象函数PATINDEX,TEXTPTR,TEXTVALID写存储过程,里面还要有游标,
游标的数据集就用我上面的SQL语句的SQL部分就可以了
 
天呢,怎么复杂啊,可是我不大会

还有没有别的办法呢
 
设置自动增长字段的时候不要都一样。
一个可以是1,2,一个可以是2,2。这样两个表就的主键就不会重复了,这样就可以插入。
但是如果要插入自增长字段的值,还需要设置SET IDENTITY_INSERT db ON
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
703
import
I
后退
顶部