2011-09-19 8 views
1

기존 데이터베이스를 업데이트하기 위해 설치 프로그램이 실행하는 업데이트 sql 파일이 포함됩니다. 그것은 테이블이 존재하는지보고, 그렇지 않다면 테이블과 필드를 생성합니다. 이것은 일부 nHibernate 기능에서 자동 생성 된 파일입니다.테이블을 삭제하지 않고 데이터베이스 스키마를 업데이트하는 방법

IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'[dbo].[TableA]') 
and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
BEGIN 
create table 

이 새 데이터베이스를 만들 수 있지만 테이블의 내용이 테스트 부서가 자신의 데이터베이스를 삭제하고 처음부터 다시 시작해야 의미 변화하고 발전하는 동안 잘 작동합니다. 테이블에 새로운 데이터를 다시 채워야하기 때문에 시간이 많이 걸립니다. 나는 SQL에 대한 지식이별로 없으며 솔루션 검색에 대한 검색 결과가 아무런 성과가 없음을 입증했습니다.

존재 여부에 관계없이 테이블을 업데이트하고 스키마를 삭제하고 다시 시작할 필요가없는 방법이 있습니까?

많은 감사합니다.

답변

1

당신이 찾고있는 것은 ALTER TABLE, ADD 문입니다.

일례로서
ALTER TABLE Comments ADD newColumn INT 

http://msdn.microsoft.com/en-us/library/ms190273.aspx

.

그러면 전체 데이터베이스에 대해 어떻게해야할까요? 필요한 것은 SQL 델타 도구입니다. (http://www.sqldelta.com/의 예가 하나 있지만 다른 것이 있습니다.)

이 도구는 이전 데이터베이스에서 실행할 수있는 업데이트 스크립트를 생성하여 최신 데이터베이스와 동기화합니다.

관련 문제