답변:
당신이 사용하는 경우 SQLCMD를 , 당신이 사용할 수있는 :r FileName별도의 .SQL 파일을 포함 할 수 있습니다.
: r 파일 이름
FileName으로 지정된 파일의 추가 T-SQL 문 및 SQLCMD 명령을 명령문 캐시로 구문 분석합니다. FileName은 Visual Studio의 시작 디렉토리를 기준으로 읽습니다. 배치 종결자가 발생한 후 파일을 읽고 실행합니다. 여러 개의 : r 명령을 실행할 수 있습니다. 파일은 도구, 옵션에 정의 된 배치 종결자를 포함하여 모든 SQLCMD 명령을 포함 할 수 있습니다. 배포 전 또는 배포 후 스크립트에서 : r을 사용하여 다른 스크립트를 포함 할 수 있습니다.
고대의 의미에서 C의 전처리 확실히 없음
주어진 절대 경로를 가진 파일 세트가 있고 무조건 순서로 포함 시키려면 명령 행 도구 sqlcmd를 사용하거나 @mfredrickson 및 @Marian이 언급 한 sqlcmdmode에서 SSMS를 사용할 수 있습니다.
그러나 상대 경로 또는 조건부 포함을 원하면 sqlcmd 또는 더 이상 사용되지 않는 선행 작업 중 하나 인 isql 또는 osql을 호출하는 래퍼를 사용해야합니다.
현재이 상황에서 직장에서 나는 오래된 vbs와 hta 코드를 검토하고 확장하고 있습니다. 나는 완전히 행복하지는 않지만 실용적인 결정입니다. 작동 중이며 최종 사용자는 hta GUI를 사용하여 집에 있으며 추가 소프트웨어 설치가 필요하지 않습니다.
새로운 디자인을 위해 WPF와 PowerShell을 사용하여 sqlcmd 호출을 래핑하는 것에 대해 생각하기 시작하지만 현재 고객과 함께 PowerShell V2가 있다고 가정 할 수는 없습니다.
이전에도이 목적을 위해 간단한 cmd 배치를 작성했는데 일부는 여전히 사용 중입니다.
현재 도구, 특히 워크 플로를 대상으로하는 도구가 여기에 적합하다고 생각합니다. 나는 그것들에 익숙하지 않다.
Management Studio 의 SQLCMD 모드 와 함께 배치 파일을 사용하여 마스터 파일로 사용하여 SQLCMD 유틸리티 를 사용하여 모든 SQL 파일을 정렬하고 호출 할 수도 있습니다 .
SQLCMD 모드는 Management Studio 내에서 유틸리티 사용을 시뮬레이션 한 것이므로 모드간에 큰 차이는 없습니다. 언젠가는 배치를 실행하는 것을 선호합니다 (M Studio를 더 이상 열지 않고 올바른 db로드 등). 출력 파일을 포함하여 배치의 모든 것을 구성하는 것을 선호합니다.
T-SQL 프리 프로세서가 잘못 필요하다는 데 동의합니다. 나는 C #으로 자신의 것을 개발했는데, 한 시간이 걸렸습니다. SQL 스크립트의 실행 순서를 제어하는 것 외에도 스칼라 UDF처럼 보이고 사용하기 편리하지만 인라인 UDF만큼 빠른 매크로를 가질 수 있습니다.
bernd_k의 답변이 마음에 듭니다 . 숫자를 포함하여 스크립트 이름을 지정한 방법에 따라 SQL Server 2008 이상을 실행하는 경우 SQLPS (SQL Server PowerShell)를 사용할 수 있습니다. 그런 다음 SQL 2005를 사용하는 경우에도 PowerShell 및 2005의 SMO를 활용할 수 있습니다.
참고 사항 : SQLCMD는 결국 감가 상각 목록에 포함될 것이며 SQLPS, PowerShell로 대체되고 있다고 생각합니다.
다른 옵션들도 있습니다.
SQLCMD 하기 때문에 알려주세요 . 또한 스키마 비교를 제외하고 SSDT와 함께 사용되는 참조 는 보이지 않지만 생성 된 스크립트는 사용하지 않습니다. sqlcmd