2012-06-05 6 views
0

저는 MS Access 데이터베이스로 Java로 프로그램을 만들고 있습니다. 은 내 프로그램 내가 얻을 것은 SqlException: ALTER TABLE syntax error입니다JDBC Java ALTER TABLE 구문 오류

Statement s; 
String[] tabinfo = {"Albara", "TBala"}; 
s.execute("ALTER TABLE " + tabinfo[0] + " ALTER COLUMN " + 
    tabinfo[1] + " SET DEFAULT 0 "); 

의 냈다 적응. 내가 뭘 잘못하고있어? 나는 그 파일의 모든 권리를 가진다. 이름이 데이터베이스 메타 데이터에서 추출되고 시스템 테이블을 수정하지 않기 때문에 테이블과 컬럼 이름이 옳다.

몇 년 전에 만든 프로그램에서 사용하는 내 자신의 db를 수정하는 프로그램입니다. 따라서 db를 변경하는 것은 의문의 여지가 없습니다. 또한 문제는 Java 사용으로 클라이언트 컴퓨터가 .NET Framework 3.5를 설치하지 않으며 정보학 유지 보수를 수행하지 않을 것입니다.

+2

먼저 Java/JDBC 또는 Access와 관련이 있는지 확인하십시오. alter table 문에 대한 완전한 String을 가져 와서 직접 액세스로 실행하십시오. 그런 다음 여기에 다시보고하십시오. – Axel

+0

이 프로그램은 Visual Basic 2008로 처음 작성되었습니다. 클라이언트가 .NET을 설치할 수 없으므로 프로그램이 Java로 다시 작성되었습니다. 그때 테이블을 바꿀 수는 있었지만 지금은 변경할 수 없습니다. 나는 vb.net 응용 프로그램을 테스트하는 데 사용했던 db의 수정되지 않은 백업 버전을 사용하고 있습니다. – Awel

+0

그래서 's.execute'로 시작하는 줄에 중단 점을 놓고 문자열의 내용을 복사 한 다음 Acces에서 직접 실행하면 무엇을 얻게됩니까? – Axel

답변

1

그 쿼리는 예를 들어, 이 ALTER TABLE Statement (Microsoft Access SQL)

다른 sources 기본값을 설정할 때 데이터 유형을 포함 할 필요가 있음을 시사한다 MSDN에 지정된 MS 액세스의 ALTER TABLE 구문과 일치하지 않습니다

ALTER TABLE <tableName> ALTER COLUMN <columnName> <columnType> DEFAULT <defaultValue> 

(또한 포함하지 않음을 알 수 있습니다. SET)

이 질문은 SQL Server 구문 com 이를 사용할 수있는 가능성 : SQL to add column with default value - Access 2003

관련 문제