2013-12-12 6 views
1

프로젝트를 게시하기 전에 데이터베이스 프로젝트에 포함 된 테이블을 삭제하고 싶습니다. 기본적으로이 테이블의 전체 빌드를 수행합니다 (기본적으로 작동하는 것처럼 보입니다) 증분 빌드로).VS 2012 DB project

대상 DB에 존재하지만 원본 프로젝트에는 존재하지 않는 테이블 (및 다른 엔티티)을 삭제하는 옵션을 보았습니다. 그리고 나는 그 반대입니다. DB 프로젝트에있는 테이블을 만들기 전에 대상에서 삭제하십시오.

IF EXISTS (SELECT * FROM [<db_name>].INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zzWorkTable1') 
    DROP TABLE [<db_name>].dbo.[zzWorkTable1] 

: 다른 데이터베이스에 그 일을하는 경우

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zzWorkTable1') 
    DROP TABLE dbo.[zzWorkTable1] 

또는 :

+0

FYI 관련 질문이 나타났습니다. 나는이 사람을 도울 수있을 것이라고 생각 했었습니다. 또는 그의 질문에 게시 될 답변에 관심이있을 수도 있습니다. http : //stackoverflow.com/questions/20555237/tfs-and-database-projects-sql-server –

답변

0

그것을 할 수있는 간단한 방법은 CREATE TABLE 전에, SQL 코드에 넣어하는 것입니다 다른 접근법을 원한다면 ... 어떤 종류의 단계로 테이블을 만드는 것과 같은 프로젝트에 대해 조금이라도 말할 수 있습니까?

+1

프로젝트는 VS 2012의 DB 프로젝트로, SQL Server 탐색기에서 "끌어서 놓기"를 수행 할 수 있습니다 테이블을 포함시키고 실제로 프로젝트를 배치 할 수있는 쿼리를 복사하여 붙여 넣는 대신 어딘가에 게시 할 수 있습니다. 좋은 점은 필요한 것을 배포하는 것이지만 때로는 전체 배포를 수행해야 할 수도 있고 어딘가에서 누락 될 수있는 옵션을 기대하고있었습니다. 이미 스크립트에서 이러한 쿼리를 가지고 있지만 스크립트가 VS의 테이블처럼 동작하고 무작위 스크립트가 아니라면 호환되지 않습니다. – Wallack

+0

@Wallack 흥미 ​​롭다 ... 스크립트가 테이블처럼 동작하기를 원한다면, 그 스크립트를 VIEW로 만들 수있다. 마찬가지로 "다른 접근법"에 대한 정보는 기술적으로 조금 더 알고, 테이블이 어떻게 만들어 지는지를 아는 데 도움이 될 것입니다. 그래서 DROP TABLE 접근법을 사용하여 생성과 같은 위치에 갈 수 있습니다 ... 도움이된다면. 또한 어떤 프로젝트입니까? 이 문제는 콘솔 응용 프로그램, 웹 응용 프로그램, SSRS (Reporting Services) 또는 SSIS (통합 서비스)에서 발생합니다. 가능성은 적습니다. VS는 SSIS 개발을 처리하지 못했습니다.)? –

+1

당신은 아마 나를 오해했습니다! VS 2012는 DB (테이블, 뷰, 트리거, 인덱스 ...)와 동일한 구조로 DB 프로젝트를 만들 수있는 옵션을 가지고 있으며 배포하기 전에 컴파일하여 무결성을 확인한 다음 지정된 위치에 배포를 시도합니다. 위치. 이것에 관한 좋은 점은 당신이 나머지 데이터와 함께 TFS에서 프로젝트를 가질 수 있기 때문에 DB를 계속 업데이트 할 수 있다는 것입니다. 이 프로젝트를 배포 할 때마다 존재하지 않거나 재 구축해야하는 테이블 만 생성된다는 것이 중요합니다. – Wallack