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

  • 主题发起人 易名烦
  • 开始时间
B.NAME,A.ID,是什么?
 
先去除自增字段属性
插入

加上自增字段
 
to panjf:数据库在负荷运行时动态修改表的结构,可能导致其它用户提交失败。
 
a代表sysobjects;b代表syscolumns
“.”后的是其所属字段的名。
 
嗯,请其他FW再给意见!
 
变通的办法:
INSERT INTO TABLE2 SELECT * FROM (TABLE1)视图
视图中去掉TABLE1的自增字段

 
怎么做视图?
 
Sqlserver、Sybase:
create view viewname(field1,field2.....)
as select ....from table1 //去掉TABLE1的自增字段

Access: 建一个去掉TABLE1自增字段的查询。
我没试过,应该可以
 
原来还是要自己找字段名啊?
 
只要做一次就行啦,以后直接调用就是
 
smallbs兄的做法,我认为也还是可取的。
 
视图在SQL中有什么作用?
 
同意:TYZhang
 
再来看看有没有其它方法?
 
我觉得有点不对既然id是关键字
那就因该先删除其中一个表的内容
delete table where ...;

insert into table select ...... from table where......



 
不能删除啊,两个表的内容是不一样的。
我想把第二个表中的内容弄到第一个表中,ID号重新自动生成。
 
可以先屏蔽掉ID字段,使用语句set identity_insert off,然后就可以使用你的语句了,
使用完毕再用set identity_insert on
 
这个好象默认的全都是OFF,我试了打开其中一个表,然后再执行INSEERT,都提示:
[red]服务器: 消息 8101,级别 16,状态 1,行 2
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'thp' 中为标识列指定显式值。[/red]
 
简单,强行插入,如果两个表ID字段没有重复的话.

SET IDENTITY_INSERT 要插的表 ON
insert ....into...select ....
SET IDENTITY_INSERT 要插的表 OFF
 
我的操作是这样的,两个表,THP和THP1,完全同,都有一ID字段。
SET IDENTITY_INSERT THP ON
INSERT INTO THP SELECT * FROM THP1
[red]还是同样的错误。[/red]
 
顶部