这个SQL怎么写(没有结束,继续)? (20分)

  • 主题发起人 主题发起人 易名烦
  • 开始时间 开始时间

易名烦

Unregistered / Unconfirmed
GUEST, unregistred user!
两个表完全相同,都有一个ID字段为标识字段.
我用INSERT INTO TABLE2 SELECT * FROM TABLE1提示错误如下:

服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'CWCZBPSR' 中为标识列指定显式值。

可能是ID字段的问题,但我不想把字段一个个写下来,因为字段很多,怎么解决呢?
 
因为你表里面有自增域,如果可能改一下就好了
 
必须要有自增啊,否则革命工作莫法搞了![:D]
 
你是哪位?你那不能下片子?
 
来人啊,救命啊!
 
一個變通的方法:
假設倆個表分別為 A,B
1.> select syscolumns.name from sysobjects,syscolumns where sysobjects.id=syscolumns.id and sysobjects.name='A'
得到表 A的所有字段,copy 下來 。。。。
insert a (粘貼 ..)
select (粘貼 ..) from b 當然要去掉id字段






 
高手就是高手.
在DELPHI里怎么写,把字段加起来吗?
有没有其它办法能够一句SQL搞定?
 
楼上教你的就是用一句呀。。。

要把字段列出来。。。
如:INSERT INTO TABLE2(字段1,2。,) SELECT (字段1,2。,) FROM TABLE1
 
要先SELECT字段出来,然后再循环把字段加起来,再INSERT,这是一句吗?
这起码要写N行代码。
我想这样,但不行。
INSERT INTO TABLE1 select syscolumns.name from sysobjects,syscolumns where sysobjects.id=syscolumns.id and sysobjects.name='A'
SELECT (select syscolumns.name from sysobjects,syscolumns where sysobjects.id=syscolumns.id and sysobjects.name='A' FROM TABLE2
 
你的sql本来就是错误的,另外既然id 是自加型的 你干吗非要 拷贝第一个表数据的 f_id
不要拷贝她不就行了,如果非要两个表关联起来,在第二个表上建一个字段 f_pid,
set:
table2.f_pid = talbe1.f_id
 
说实话,我没明白您讲的,笨了点。
 
没说的,先读出字段,然后拼写sql
 
天怒人怨
 
你不要将标识列也插数据,应该是:
insert into table2(field1,field2,...fieldn) select field1,field2,...fieldn
from tabl2
其中field1,...fieldn 在table1,table2中一一对应,但是是去掉两表中的ID列.
 
就是说 table2(目标表,你要把table1的数据复制过的表) 上建一个字段 叫做 f_pid,
然后去复制记录了了,你talbe2 的 id  照旧是自家的  f_pid  是 
table1 的 id  这样两个表不就是 关联了么,跟主子表的 原理是一
样的亚
 
要真是这样,也未免太哪个了吧!
 
人在昆明:
我还是不懂,真的太笨。
是不是TABLE2(目标表)多一个字段叫F_PID,但这个字段怎么处理呢?
我不是复制,是要将TABLE1(源表)的某一些数据(符合条件的)追加到TABLE2(目标表)。
具体怎么操作还请你多多指点。
如果您有空,烦你发个东东到油箱:zoujinhe@changhong.com
 
在 select 后,列出所有字段名。
 
用一个查询语句
INSERT INTO TABLE(字段1,字段2,···) VALUES('字段1名称','字段2的名称',···)
 
字段太多,不想写所有字段。
 

Similar threads

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