2016-06-08 3 views
0

그래서 pvkey에 따라 tableA에서 tableB로 데이터를 삽입하고 싶습니다. 각 행에는 그의 pvkey가 있고 동일한 pvkey에서 한 행에는 여러 레코드가있을 수 있으며이 레코드 각각에는 고유 한 cnkey가 있습니다. Cnkey는 테이블의 모든 데이터에 대해 고유합니다. tableA에서 데이터를 삽입 할 때 Cnkey 열이없고 tableB에 Cnkey가 있습니다.tableA에서 tableB로 데이터를 삽입하십시오.

INSERT INTO CONTHIST (CONTTYPE, ASSIGNEDTO, CONTDATE, SOURCE, CNKEY) 
    SELECT ContactType, ASSIGNEDTO, DATE, SourceCode, ?!?! 
    FROM MopUpEOC 
    WHERE Pvkey in (1,5,7,9,11,20) 

당신이 좀 도와 주셔서 감사합니다 수 : D 당신을 도울 수

+3

그래서 당신은 Cnkey 컬럼에 삽입 무엇을 원하는가를? – jarlh

+0

문제가 무엇인지 확실하지 않습니다. 열이 없다면 INSERT 문에 INSERT 문을 포함시키지 말고 'INSERT INTO' LINE (기본값이 있다고 가정)에서 CNKEY를 가져옵니다. – Takarii

+0

다음과 같습니다 :'CNKEY '열에 NULL 값을 삽입 할 수 없습니다. 테이블 'Progress.dbo.CONTHIST'; 열이 널을 허용하지 않습니다. INSERT가 실패합니다. 명세서가 종료되었습니다. Cnkey 열을 포함하지 않을 때 발생합니다. 0을 삽입하려했지만 새로운 레코드가 삽입 될 때마다 모든 레코드에 대해 고유 한 Cnkey가 있어야하기 때문에 일종의 레코드 여야합니다. –

답변

0

몇 가지 : CnKey이 테이블의 일련 기본 키

  • 확인하는 경우입니다. 직렬 기본 키인 경우 문제가 없습니다.
  • CnKeyNOT NULL인지 확인하고, 그렇지 않은 경우 나중에 값을 변경하거나 기본값을 설정할 수 있습니다.

예를 들어, 열 CnKey는 당신은 NULL 수 있도록 다음과 같은 쿼리를 사용할 수 NOT NULL이다 : 당신의 열의 실제 유형

ALTER TABLE TableB ALTER COLUMN CnKey INT NULL 

변경 INT.

또는 당신은 기본값으로 설정 :

ALTER TABLE TableB ADD CONSTRAINT ConstraintName DEFAULT 'DefaultName' FOR CnKey; 
+0

Cnkey 데이터 및 시스템 유형이 float이고 기본 키가 true입니다. –

관련 문제