2010-04-01 5 views
2

SQL Server CE 3.5의 IDENTITY 열 테이블에 값을 삽입하려고합니다. 나는 다음을 시도했다 :IDENTITY 열이 하나만있는 테이블에 삽입하는 방법 (SQL Server CE)

INSERT Target DEFAULT VALUES 
INSERT Target (ID) VALUES (DEFAULT) 
INSERT Target (ID) VALUES() 

그러나 그들 중 누구도 일하지 않았다.

CREATE TABLE Target(
ID int NOT NULL IDENTITY (1, 1) PRIMARY KEY 
); 

마이크로 소프트 도움말 사이트 (http://msdn.microsoft.com/en-us/library/ms174633%28SQL.90%29.aspx) DEFAULT 값은 그들이 어떤 대안을 언급하지 않는하지만 ID 열 유효하지 않은 것을 언급한다 : 이것은 (SQL Server Management Studio를 사용하여) 나는 테이블을 만드는 데 사용되는 SQL 명령입니다.

그들은 uniqueidentifier와 ROWGUID에 대해 언급하지만 작동시키지 못했습니다.

이 문제를 해결하는 방법에 대한 지침이나 SQL Server CE에 대한 유효한 SQL 명령에 대한 설명서 링크가 있으면 감사하겠습니다.

감사합니다.

답변

4

표준 값 사용은 표준 SQL 버전의 ID 열에서 작동합니다. CE에서 작동하지 않는 이유가 없습니다.

가 귀하의 경우에는 당신이 이런 짓을 할 것이다 :

Insert Into Target 
Default Values 

편집 :이 SQL CE에 고유처럼

이 문제가 보인다.

내가 제안 할 수있는 유일한 다른 사항은 DateInserted와 같은 다른 열을 테이블에 추가하는 것입니다.

Insert Into Target (DateInserted) 
Values (getdate()) 

그러면 새 행을 삽입하여 새 ID를 생성해야합니다.

테이블 구조를 변경할 수 있으면 대신 UniqueIdentifier를 사용할 수 있습니다.

Create Table Target 
(
IDColumn uniqueidentifier not null 
) 

Insert Into Target 
Values (newId()) 
+0

안녕하세요 Barry 나는 기본 쿼리에 오류가 있다는 쿼리가 작동하지 않는다고 말했습니다. – Hei

+0

네, 분명히 - 'INSERT INTO Target DEFAULT VALUES'는 SQL Server 2008에서 확실히 작동합니다 - 아마도 SQL Server CE에서만 발생하는 문제입니까? –

+0

@ 배리 그러나 첫 번째 솔루션이 작동하지만 테이블을 변경하지 않으려 고 응답 해 주셔서 감사합니다. 두 번째 솔루션은 잘 작동하지만 매우 길고 비 순차적 인 ID를 삽입합니다. – Hei

관련 문제