Q&A

  • Cannot insert explicit value to identity column ..
SQL 7.0의 특정 Database에서.....



어떤 테이블의 첫번째필드(fields[0])이 primary key로 되어있고, indentity속성을 갖고



있습니다.( identity seed = 1, identity increasement =1 )



그러나 이 첫번째필드를 제외한 나머지 필드들은 위와같은 속성을 갖고 있지 않습니다.



이러한 테이블에 한 줄을 추가시키려면(table1.append) 자꾸 에러가 나는군요...



보아하니 identity가 1씩 증가하도록 설정되어있어서 그러는것 같은데요...



"Cannot insert explicit value to identity column in table...."



identity속성의 필드에는 값을 집어널수 없다는 에러내용이져. 당삼, identity속성이



주어졌으면, 그 필드는 수정이 불가하겠지만,



자동으로 1씩 증가한다면 append 시키자마자 table의 첫번째필드는 자동으로 값이 할당



되어야하는게 아닐까여???



이럴땐 어떻게 한 줄을 더 추가시킬수가 있을까요???



이거 마추시는 사람은 델파이 고~수... ^^

2  COMMENTS
  • Profile
    김영해 2000.07.25 17:59
    최준연 wrote:

    > SQL 7.0의 특정 Database에서.....

    >

    > 어떤 테이블의 첫번째필드(fields[0])이 primary key로 되어있고, indentity속성을 갖고

    >

    > 있습니다.( identity seed = 1, identity increasement =1 )

    >

    > 그러나 이 첫번째필드를 제외한 나머지 필드들은 위와같은 속성을 갖고 있지 않습니다.

    >

    > 이러한 테이블에 한 줄을 추가시키려면(table1.append) 자꾸 에러가 나는군요...

    >

    > 보아하니 identity가 1씩 증가하도록 설정되어있어서 그러는것 같은데요...

    >

    > "Cannot insert explicit value to identity column in table...."

    >

    > identity속성의 필드에는 값을 집어널수 없다는 에러내용이져. 당삼, identity속성이

    >

    > 주어졌으면, 그 필드는 수정이 불가하겠지만,

    >

    > 자동으로 1씩 증가한다면 append 시키자마자 table의 첫번째필드는 자동으로 값이 할당

    >

    > 되어야하는게 아닐까여???

    >

    > 이럴땐 어떻게 한 줄을 더 추가시킬수가 있을까요???

    >

    > 이거 마추시는 사람은 델파이 고~수... ^^



    저두 어제 그런 경우를 당했는데요.....



    자동증가 필드를 건드리지 않으면 되더군요..



    즉 insert 시

    insert into table

    (필드,필드,필드,필드)

    values(value,value,value,value)

    하실때 자동증가(fields[0]) 필드를 빼니깐 되더군요.....



    역쉬 M$ SQL이라서 그런가보죠?? ^^



  • Profile
    최준연 2000.07.25 22:20
    김영해 wrote:

    > 최준연 wrote:

    > > SQL 7.0의 특정 Database에서.....

    > >

    > > 어떤 테이블의 첫번째필드(fields[0])이 primary key로 되어있고, indentity속성을 갖고

    > >

    > > 있습니다.( identity seed = 1, identity increasement =1 )

    > >

    > > 그러나 이 첫번째필드를 제외한 나머지 필드들은 위와같은 속성을 갖고 있지 않습니다.

    > >

    > > 이러한 테이블에 한 줄을 추가시키려면(table1.append) 자꾸 에러가 나는군요...

    > >

    > > 보아하니 identity가 1씩 증가하도록 설정되어있어서 그러는것 같은데요...

    > >

    > > "Cannot insert explicit value to identity column in table...."

    > >

    > > identity속성의 필드에는 값을 집어널수 없다는 에러내용이져. 당삼, identity속성이

    > >

    > > 주어졌으면, 그 필드는 수정이 불가하겠지만,

    > >

    > > 자동으로 1씩 증가한다면 append 시키자마자 table의 첫번째필드는 자동으로 값이 할당

    > >

    > > 되어야하는게 아닐까여???

    > >

    > > 이럴땐 어떻게 한 줄을 더 추가시킬수가 있을까요???

    > >

    > > 이거 마추시는 사람은 델파이 고~수... ^^

    >

    > 저두 어제 그런 경우를 당했는데요.....

    >

    > 자동증가 필드를 건드리지 않으면 되더군요..

    >

    > 즉 insert 시

    > insert into table

    > (필드,필드,필드,필드)

    > values(value,value,value,value)

    > 하실때 자동증가(fields[0]) 필드를 빼니깐 되더군요.....

    >

    > 역쉬 M$ SQL이라서 그런가보죠?? ^^

    >





    저는 query를 사용하지 않고 table1에서 단지 다른 table2로 복사하는 형태를



    구현하려고하거덩요, 그러니깐 테이블의 한줄이 table2로 새로이 append 되면서 table1



    의 복사된 줄은 삭제가 되버리는것이지요.. 한마디로 복사(copy)가 아닌 이동(move)를



    구현하려는데요.



    님께서 갈켜주신 방법으로 해봤는데, 저는 SQL문를 사용하지 않아서 그런지 이번에는



    이런에러가 나는걸요~



    "Field Id must have a value... "



    즉 identity속성이 체크되어지기 위해서는 해당필드가 Allow Null을 허용하면 안되기



    때문에 위와같은 에러가 발생하는것 같네요.



    결국 자동으로 identity 필드가 1씩 증가하지 않는다는 얘긴데요...



    이것은 직접 SQL 7.0이 깔려있는 서버에가서 테이블을 입력할때에는 새로운 줄에 커서가



    가자마자 identity필드의 값은 1씩 증가를 하거덩요.



    그러나 Application에서 table1.append 하고서 identity 필드를 제외하고 나머지 필드에



    값을 입력하고서 table1.post 시키게되면 위와같은 에러가 발생합니다....



    query table을 만들어서 insert구문으로 꼭 해야할까여????