14

저는 몇 시간 동안이 문제에 대한 "확실한"해결책을 찾고 있었고 문제가 무엇인지 정확히 알 수 없기 때문에 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바라고 있습니다.Microsoft의 데이터베이스 게시 마법사로 생성 된 스크립트에서 "GO 근처의 잘못된 구문"오류를 수정하려면 어떻게합니까?

원격 컴퓨터에서 데이터베이스 (MDF 파일 DB)의 스크립트를 만들고 동일한 데이터베이스를 로컬로 만들려고합니다. 두 컴퓨터에서 Visual Studio 2010을 사용하므로 데이터베이스 게시 마법사를 사용하여 스크립트를 생성했습니다.

다음으로 Visual Studio에서 공백 DB (다른 MDF 파일 DB)를 만들고 새 쿼리를 만들도록 선택했습니다. 복사 된 스크립트를 붙여 넣었습니다.하지만 실행하려고하면 수십 개의 "잘못된 구문 근처 GO"오류가 발생합니다. 경고 팝업이 화면 아래쪽으로 얼마나 많이 나오는지 모릅니다. 그것은 비록 많은 것 같다.

필자는 스크립트의 맨 위 부분 만 다듬어 냈지만 여전히 같은 오류가 발생합니다. 이제 다음과 같이 보입니다.

SET ANSI_NULLS ON 

GO 

"잘못된 구문 근처에"오류가 계속 표시됩니다.

이 도구가 생성하는 스크립트에 본질적으로 잘못된 것이 있습니까? 아니면 제가 잘못하고있는 것이 있습니까?

원격 데이터베이스는 2008 R2이고 내 로컬은 일반 2008이므로 MDF 파일을 복사하지 않는 이유는 무엇입니까?

누구든지 의견이 있으면 가장 환영받을 것입니다. 워드 프로세서

답변

19

:

GO는 Transact-SQL 문 아니다; 은 sqlcmd 및 osql 유틸리티와 SQL Server Management Studio 코드 편집기에서 인식하는 명령입니다.

이러한 도구를 사용하여 스크립트를 실행하거나 GO 명령을 생략하십시오.

+4

정보 주셔서 감사합니다. 나는 아마 그런 식으로 생각할 것입니다.하지만 Microsoft가 SQL 스크립트로 실행할 수없는 일반 텍스트 스크립트를 생성하는 도구를 만들지 않을 것이라는 생각에 빠져 있다고 생각합니다. 아, Microsoft ... –

+0

진짜 아이러니는 VS2010의 데이터베이스 프로젝트 * 일괄 처리 구분 기호로 "GO"를 지원합니다 - 그것은 옵션 대화 상자에도 있습니다. 당신이 저에게 묻는다면, 그들에게 꽤 엉성한 것입니다. – McGuireV10

+0

여기 GO 키워드의 다른 용도를 더 잘 이해할 수있는 좋은 접근 방법을 찾았습니다. 재미있게 보일만한 가치가 있다고 생각합니다. [GO with Fun] (http://beyondrelational.com/modules/2/blogs/ 70/posts/10842/fun-with-go.aspx). –

8

최근에 같은 문제가 발생하여 이에 대한 올바른 대답을 찾았습니다.

당신이 행의 끝에서 SQL Server Management Studio의 코드 편집기 이외의 어떤 임의의 편집기에서 쿼리를 작성하는 경우 당신은 캐리지 리턴 (\ R) 대신 캐리지 리턴 + 줄 바꿈의 문자 (받을 수 있습니다 \ r \ n). 그리고 줄의 끝에있는 DEL 키를 누른 다음 Enter 키를 눌러도 변경되지 않습니다.

CRLF (\ r \ n)에 CR (\ r)을 바꾸려면 메모장 ++를 사용하십시오. - 주문을 유지하는 것이 중요합니다!

+0

+1. 와우. 나는 30 분을 질의와 함꺼 망쳤다.정보 주셔서 감사합니다! – gh9

관련 문제