SQL 스크립트 오류 : 배치 당 하나의 명령문 만 허용됩니다.
PostDeployment의 DACPAC에서 실행하려는 4 개의 SQL 스크립트가 있지만 그중 3 개의 VS 프로젝트를 빌드하려고하면이 오류가 발생합니다.
Only one statement is allowed per batch. A batch separator, such as 'GO', might be required between statements.
스크립트 INSERT
는 DB의 다른 테이블에있는 명령문 만 포함합니다 . 그리고 그들 모두는 이렇게 구성되어 있습니다
IF NOT EXISTS (SELECT 1 FROM dbo.Criteria WHERE Name = 'Mileage') INSERT INTO dbo.Criteria(Name) VALUES ('Mileage');
다른 테이블과 다른 데이터에서만.
내 질문은 모든 스크립트가 구문과 작업면에서 동일 할 때 VS가 3 가지에 대해 불평하는 이유는 무엇입니까?
추신 : 오류가 암시하는 것처럼 문장 사이에 'GO'를 추가하면 아무것도하지 않습니다.
문제를 발견했습니다. VS에서 파일을 추가했을 때 Build Action = None
파일 속성에서 설정 하는 것을 잊었습니다 . 따라서 변경하면 문제가 해결되고 프로젝트가 컴파일됩니다.
그럼에도 불구하고 이것은 꽤 오래 된 것 같습니다. 나는 또한 몇 시간 동안 붙어 있었고이 방법은 많은 사람들에게 도움이 될 수 있다고 생각합니다.
에서 Database project
로 설정된 파일 Build
은 데이터베이스 구조로 간주되므로 해당 파일에서 의도적으로 하나의 명령문 만 허용됩니다. Go
또는 다른 배치 종결자가 해당 동작을 변경하지 않습니다. 해당 메시지는 실수 일뿐입니다. 자세한 정보는 여기에 있습니다.
이러한 프로젝트에는 파일에 대한 다른 빌드 옵션이 많이 있습니다. 귀하의 경우에는 그런 것 같습니다 PostDeploy
. 이러한 파일에는 다음과 같은 다양한 명령이있을 수 있습니다 inserts
.
그런 다음 데이터베이스 프로젝트의 출력을 Data-Tier DB 애플리케이션 용 dacpac 파일로 사용할 수 있습니다 (그렇지 않으면 포함되지 않음).
각 명령문의 마지막에서; (세미콜론)을 제거하면 확실하지 않지만 위의 삽입 명령문 사이에 GO가 필요하지 않습니다.
'programing tip' 카테고리의 다른 글
android 조각 onRestoreInstanceState (0) | 2020.07.21 |
---|---|
Google 웹 로그 분석에서 웹 사이트를 삭제하는 방법 (0) | 2020.07.21 |
jQuery를 사용하여 JavaScript 객체의 속성 반복 (0) | 2020.07.21 |
파이썬에서 날짜 문자열 형식을 어떻게 확인합니까? (0) | 2020.07.21 |
docker에서 단독으로 실행할 때 Python 앱이 아무것도 인쇄하지 않습니다. (0) | 2020.07.21 |