第一个表的结构是这样的:
create table G(id int,ccode varchar(20),ccode_name varchar(50),cclass varchar(20),igrade int,bd_c int,ccode_1 varchar(5))
go第二个表的结构是这样的
insert into t_account(
FAccountID,
FNumber,FName,FLevel,FDetail,FparentID,FRootID,FGroupID,FDC,FcurrencyID,FAdjustRate,
FQuantities,FunitGroupID,FMeasureUnitID,FIsCash,FIsBank,FJournal,FContact,
FIsCashFlow,FDetailID,FAcnt,FLoan,FDpst,FStatedDpst,FInterest,FIsAcnt,FIsBudget,
FAcntID,FBrNo,FAcctint,FintRate,FAcntType,FControl,FViewMsg,FDelete,FIsBuSi,FFullName,
FSystemType,FControlSystem
)select 
id,ccode,ccode_name,igrade,igrade,0,0,0,bd_c,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,ccode_name,1,0
from G 第一个表G里面有92条记录,id号的范围是1000~1092。每次当我将第张表的数据插入到第二张表中的时候,当插到1080条记录的时候,它就会提示:“有重复的列,结束插入”,但是我的id号是唯一的啊!!
当我把第二条语句改成这样的时候:
insert into t_account(
FAccountID,
FNumber,FName,FLevel,FDetail,FparentID,FRootID,FGroupID,FDC,FcurrencyID,FAdjustRate,
FQuantities,FunitGroupID,FMeasureUnitID,FIsCash,FIsBank,FJournal,FContact,
FIsCashFlow,FDetailID,FAcnt,FLoan,FDpst,FStatedDpst,FInterest,FIsAcnt,FIsBudget,
FAcntID,FBrNo,FAcctint,FintRate,FAcntType,FControl,FViewMsg,FDelete,FIsBuSi,FFullName,
FSystemType,FControlSystem
)select 
id,ccode,ccode_name,igrade,igrade,0,0,0,bd_c,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,ccode_name,1,0
from G where id>=1080 
go 
的时候就可以插入前80条记录。
而且在企业管理器里面也不能插入数据。
晕死了~~~~
想了好久都想不通:'(

解决方案 »

  1.   

    第一个表的结构是这样的
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Account]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[t_Account]
    GOCREATE TABLE [dbo].[t_Account] (
    [FAccountID] [int] NOT NULL ,
    [FNumber] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
    [FName] [nvarchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,
    [FLevel] [smallint] NULL ,
    [FDetail] [bit] NULL ,
    [FParentID] [int] NULL ,
    [FRootID] [int] NULL ,
    [FGroupID] [int] NULL ,
    [FDC] [int] NULL ,
    [FHelperCode] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
    [FCurrencyID] [int] NULL ,
    [FAdjustRate] [bit] NULL ,
    [FEarnAccountID] [int] NULL ,
    [FQuantities] [bit] NULL ,
    [FUnitGroupID] [int] NULL ,
    [FMeasureUnitID] [int] NULL ,
    [FIsCash] [bit] NULL ,
    [FIsBank] [bit] NULL ,
    [FJournal] [bit] NULL ,
    [FContact] [bit] NULL ,
    [FIsCashFlow] [bit] NULL ,
    [FDetailID] [int] NULL ,
    [FAcnt] [bit] NULL ,
    [FLoan] [bit] NULL ,
    [FDpst] [bit] NULL ,
    [FStatedDpst] [bit] NULL ,
    [FInterest] [bit] NULL ,
    [FIsAcnt] [bit] NULL ,
    [FIsBudget] [bit] NULL ,
    [FAcntID] [int] NULL ,
    [FBrNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [FAcctint] [bit] NULL ,
    [FintRate] [float] NULL ,
    [FLastintDate] [datetime] NULL ,
    [FAcntType] [int] NULL ,
    [FTradeNum] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
    [FControl] [int] NULL ,
    [FViewMsg] [bit] NULL ,
    [FMessage] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    [FDelete] [smallint] NULL ,
    [FIsBusi] [int] NULL ,
    [FFullName] [varchar] (250) COLLATE Chinese_PRC_CI_AS NULL ,
    [FModifyTime] [timestamp] NULL ,
    [FSystemType] [int] NULL ,
    [FControlSystem] [smallint] NULL ,
    [UUID] [uniqueidentifier] NULL 
    ) ON [PRIMARY]
    GO
      

  2.   

    肯定有重复的,select id,count(*) from G group by id having count(*)>1
    看看有没有重复的,然后看看第二张表的主键是不是组合主键盘
      

  3.   

    *************************************************************
    肯定有重复的,select id,count(*) from G group by id having count(*)>1
    看看有没有重复的,然后看看第二张表的主键是不是组合主键盘
    ************************************************************
    我执行
    SELECT id, COUNT(*) AS Expr1
    FROM G
    GROUP BY id
    HAVING (COUNT(*) > 1)
    没有发现重复的数据的
    ************************************************************
      

  4.   

    t_account
    之前有数据马?如果有清空(先备份)
    再插入数据看看...顺利插入的话,哪就是之前数据与你插入的数据有冲突...
    不顺利的话,哪就是主键问题了...
      

  5.   

    t_account 
    之前的数据已经清空了,我已经通过delete语句清空了的,就剩最后一招--“重建这张表的”:)