문제

내가 찾는 방법을 확인하는 SQL 에서 스키마 생산 DB 후 업데이트 응용 프로그램 버전입니다.는 경우 응용 프로그램과 일치하지 않는 DB 스키마는 버전이 있어야 합 방법을 사용자에게 경고 메시지를 표시하고 목록에 변경이 필요합니다.

도구가 있거나 프레임 워크(을 사용하여 프로그램)내장 기능으로는 그렇게 하라고 하셨을까?또는 거기에 몇 가지 간단한 알고리즘 실행이 비교합니까?

업데이트: 레드 게이트 목록에서"$395".아무 것도 무료인가요?나 이상의 고장이 없다 그냥 지키는 버전 번호?

도움이 되었습니까?

해결책

이 SQL을 사용해보십시오.
- 각 데이터베이스에 대해 실행하십시오.
- 출력을 텍스트 파일에 저장합니다.
- 텍스트 파일이 다릅니다.

/* get list of objects in the database */
SELECT name, 
       type 
FROM  sysobjects
ORDER BY type, name

/* get list of columns in each table / parameters for each stored procedure */
SELECT so.name, 
       so.type, 
       sc.name, 
       sc.number, 
       sc.colid, 
       sc.status, 
       sc.type, 
       sc.length, 
       sc.usertype , 
       sc.scale 
FROM   sysobjects  so , 
       syscolumns  sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.name

/* get definition of each stored procedure */
SELECT so.name, 
       so.type, 
       sc.number, 
       sc.text 
FROM   sysobjects  so , 
       syscomments sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.number 

다른 팁

는데 도움이 될 수 있습니다-이것은 문서를 읽어보는 것이 좋:

비교 SQL 서버 데이터베이스에 자동으로 스키마

그것을 설명하는 방법을 자동화할 수 있습 SQL 서버 스키마 비교 및 동기화 프로세스를 사용하여 T-SQL,SSMS 또는 타사 도구입니다.

두 데이터베이스의 데이터 사전 (sys.objects, sys.columns 등)을보고 비교하여 프로그래밍 방식으로 할 수 있습니다. 그러나와 같은 도구도 있습니다 Redgate SQL 비교 프로 그것은 당신을 위해 이것을합니다. 나는 이것을 현재 현재 작업중 인을 포함하여 몇 차례 데이터웨어 하우스 시스템에 대한 QA 용 툴링의 일부로 지정했습니다. 내 현재 공연에서 DBA가 이미 사용하고 있었기 때문에 이것은 전혀 문제가되지 않았습니다.

이러한 도구를 사용하는 기본 방법론은 데이터베이스를 구축하고 버전 제어를 유지하는 참조 스크립트를 유지하는 것입니다. 스크립트를 스크래치 데이터베이스로 실행하고 대상과 비교하여 차이점을 확인하십시오. 또한 경향이 있다고 느끼면 패치 스크립트를 생성합니다.

내가 아는 한 자신의 글을 쓰고 싶지 않다면 이렇게하는 무료는 없습니다. Redgate는 무료 일 정도로 저렴합니다. 생산 DB가 구성에 없음을 증명하는 QA 도구라도 한 번의 사건 후에 구매 가격을 절약 할 수있었습니다.

이제 내 사용할 수 있습니다 SQL 관리자 스튜디오 무료로 실행할 수 있습니다 스키마 비교, 데이터 비교 변경 사항을 동기화합니다. 더 이상 여기에서 라이센스 키 다운로드가 필요하지 않습니다 http://www.simego.com/products/sql-admin-studio

SQL Azure에 대해서도 작동합니다.

업데이트 : 예, 위의 프로그램의 저자입니다. 이제 무료로 커뮤니티와 공유하고 싶었습니다

두 개의 데이터베이스를 비교하고 Red Gate가 만드는 차이를 보여줄 수있는 도구를 찾고 있다면 SQL 비교

사용중인 RDMB를 언급하지 않았습니다. 정보 스키마 뷰를 RDBMS에서 사용할 수 있고 동일한 호스트에서 두 스키마를 참조 할 수있는 경우 정보 스키마보기를 쿼리하여 다음의 차이점을 식별 할 수 있습니다. 열 -Column Type -Constraints (예 : 기본 키, 고유 한 제약 조건, 외국 키 등)

과거 작업을 위해 SQL Server 에서이 목적에 대한 쿼리 세트를 작성했습니다. 차이점을 식별하는 데 효과적이었습니다. 많은 쿼리가 왼쪽 결합을 사용하여 IS NULL을 사용하여 예상 항목이 없는지 확인하고 다른 쿼리는 열 유형이나 제약 조건 이름과 같은 것을 비교했습니다.

조금 지루하지만 가능합니다.

나는 대부분의 요구에 맞는이 작고 무료 도구를 발견했습니다.http://www.wintestgear.com/products/mssqlschemadiff/mssqlschemadiff.html

매우 기본적이지만 두 데이터베이스의 스키마 차이를 보여줍니다. 자동 생성 된 스크립트와 같은 멋진 것들이 없으며 차이를 사라지고 데이터를 비교하지 않습니다.

스키마 차이를 보여주는 작고 무료 유틸리티 일뿐입니다. :)

테이블을 만들고 버전 번호를 저장하십시오. 필요에 따라 업데이트하십시오.

CREATE TABLE version (
    version VARCHAR(255) NOT NULL
)
INSERT INTO version VALUES ('v1.0');

그런 다음 데이터베이스에 저장된 버전 번호가 앱 설정 중 또는 편리한 곳에서 응용 프로그램 코드와 일치하는 버전을 확인할 수 있습니다.

이것은 어떤 RDBMS이며, 잠재적 인 변화는 얼마나 복잡합니까?

어쩌면 이것은 각 테이블의 행 카운트와 인덱스 카운트를 비교하는 문제 일 것입니다. 걱정할 트리거 및 저장 프로 시저 버전이 있다면 더 산업적으로 무언가가 필요합니다.

dbForge 데이터 비교에 대한 SQL 서버.그것을 비교할 수 있습과 동기화 모든 데이터베이스에도 매우 큰 것들입니다.빠르고 쉽고,항상 올바른 결과입니다.에 그것을 시도하고 당신의 데이터베이스 및 코멘트 위에 제품입니다.

우리가 하는 것을 추천할 수 있습니다 믿을 수 있는 SQL 비교 도구를 제공하는 3 시간의 더 빠르게 비교 및 동기화의 테이블 데이터에서 당신의 SQL 서버 데이터베이스가 있습니다.그것은 dbForge 데이터를 비교하여 있음을 의미합니다.

주요 이점:

  • 빠른 비교 및 동기의 대형 데이터베이스
  • 의 지원 native SQL 서버 백업
  • 사용자 지정 매핑 테이블,열 및 스키마
  • 여러 옵션을 조정하는 귀하의 비교 및 동기화
  • 성 비교 및 동기화 보고서

Plus30 일 무료 체험과 위험이 구매하는 30 일 돈을 다시 보장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top