SQL 스키마 비교 오류 "대상을 사용할 수 없습니다"
Visual Studio 2015 업데이트 2의 SQLServer 프로젝트를 데이터베이스 SQL Server 2012와 비교할 때 방향을 변경할 때 "대상을 사용할 수 없음"또는 "소스를 사용할 수 없음"오류가 표시됩니다.
몇 달 전에 제대로 작동했습니다. 해결 방법이 있습니까? 나는 아무것도 찾을 수 없었다.
연결을위한 사용자 이름 으로 username @ servername 을 사용 하면 Azure 데이터베이스에서 발생하는 문제가 해결 된다는 것을 발견했습니다 . 나는 갑자기 멈추지 않고 역사적으로 작동했던 연결을 가지고 있었고 이것은 나를 위해 그것을 고쳤습니다.
예를 들어 mylogin 의 로그인을 사용하고 myserver.database.windows.net에 연결할 때 mylogin@myserver.database.windows.net 을 사용자 이름으로 대신 사용 하면 "소스를 사용할 수 없음"문제가 발생하지 않습니다.
SQL Server 인증을 사용하지만 암호를 저장하지 않으면 Visual Studio 2017에서이 오류가 발생합니다. Visual Studio 15.6.3 및 SQL Server 12.0.5000.0에서이 단계를 테스트했습니다.
오류 수정
이렇게하면 문제가 해결되지만 다음에 Visual Studio를 다시 시작할 때 문제가 다시 발생합니다.
- 도구 -> SQL Server- > 새 스키마 비교 ...로 이동합니다 .
- 중 하나를 선택하여 소스 선택 또는 선택 대상을
- 연결 선택 선택
- 에서 최근 연결 , 당신이 오류를 준 모든 연결을 찾을 수
- 이들 각각에 대해 연결을 마우스 오른쪽 버튼으로 클릭하고 기록 에서 제거를 선택합니다.
- Visual Studio 다시 시작
오류가 다시 발생하지 않도록 방지
- 위 의 오류 수정 완료
- 연결 세부 정보를 설정할 때 암호 기억 확인란을 선택하십시오.
오류 재현
이 오류의 문제를 해결하려면 다음 방법으로 문제를 재현했습니다.
- 도구 -> SQL Server- > 새 스키마 비교 ...로 이동합니다 .
- 소스 및 대상 연결 선택
- 하나 이상의 연결에 대해 SQL Server 인증을 사용 하지만 암호 기억 은 선택 하지 마십시오.
- 비교를 누르십시오
- 오류없이 작동하는지 확인
- Visual Studio 다시 시작
- 정확히 동일한 연결 세부 정보를 사용하여 1-4 단계를 반복합니다.
여기에서 모든 것을 시도한 후 이것이 저에게 효과적이었습니다.
VS 인스턴스를 닫습니다.
에 저장된 연결 키 삭제
HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0 \ ConnectionMruList
- VS를 다시 열고 다시 시도하십시오.
다른 답변은 Azure가 아닌 SQL Server를 직접 사용하고 있었기 때문에 작동하지 않았지만 연결 문자열의 고급 속성을 확인한 후 인증이 "지정되지 않음"으로 설정되고 네트워크 라이브러리가 비어 있음을 알았습니다.
나는 그들을 바꾸었고 다시 작동했습니다. 연결을 위해 데이터베이스를 선택할 수 있으므로 다소 이상합니다. 언급 된 "소스를 사용할 수 없음"메시지를 제공하는 스키마를 비교할 수는 없습니다.
나를 위해 그것은 그것을 수정 \
한 server name
필드 에서 서버의 IP 주소 끝에 있는 기호였습니다 . 아주 이상한.
예를 들어 10.10.10.10
내가 쓰는 대신 10.10.10.10\
괜찮습니다.
참고 : 저는 Visual Studio 2017을 사용하고 있습니다.
처음 만들었을 때 성공적으로 작동했던 이전에 저장된 .scmp 파일을 열 때이 오류가 발생했습니다.
이 문제는 저장된 연결 문자열에서 암호가 누락되어 발생했습니다. 소스는 통합 인증을 사용했기 때문에 VS는 그것에 대해 불평하지 않았습니다.
VS가 캐시 된 연결 문자열을 사용했기 때문에 대상 연결을 다시 선택해도 도움이되지 않았습니다.
Password
파일의 연결 문자열에 인수를 추가하여 문제를 해결했습니다 . 대상 연결 문자열이 지정된 두 위치가 있습니다 (아래에 표시된 XPath).
/SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
/SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']
이러한 편집 후 .scmp 파일을 다시 열었고 비교가 성공적으로 실행되었습니다.
여기에 다른 답변과 혼합 된 결과가 있습니다. 다른 개발자가 만든 저장 비교 파일을 사용하고있었습니다. 이것은 Azure 데이터베이스가 아닌 독립 실행 형 SQL Server입니다. 비교는 때때로 작동하고 다른 것은 작동하지 않습니다 (대상을 사용할 수 없음 오류를 제공함). 필자의 경우 저장된 비교는 FQDN을 사용하지 않고 서버 이름을 사용했습니다. FQDN으로 변경하면 저에게 효과적이었습니다. 문제가 다시 발생할지 확실하지 않지만 다른 사람에게 유용 할 경우이 정보를 추가 할 것이라고 생각했습니다.
프로세스가 데이터베이스를 차단하고있었습니다. kill [spid]를 실행 한 후 다시 작동했습니다.
사용자에게 스키마 비교 작업을 수행하는 데 필요한 권한이없는 경우에도 동일한 문제가 나타납니다. https://msdn.microsoft.com/en-us/library/jj889462(v=vs.103).aspx
나는 IP를 통해 SQL 서버를 언급하고 있었고이 문제를주었습니다. 나는 DNS 이름을 통해 그것을 참조했고 문제가 해결되었습니다!
이유가 확실하지 않습니다! 그러나 다음과 같이 작동했습니다. :)
SQL Server 개체 탐색기 창에서 데이터베이스 이름을 마우스 오른쪽 단추로 클릭하고 거기에서 스키마 비교를 선택하면 작동하도록 할 수 있습니다. 도구 메뉴에서 열리는 스키마 비교 창을 사용하려고하면 작동하지 않습니다.
I have tried in 2015 Visual Studio Professional version and I got this issue at the time of SQL data comparison and it worked for me when I use host name instead of IP address of databases. Hope this will address the issue.
I actually had the same problem in VS studio 2015. But as the database was on my PC I was using localhost instead of the actual name of the computer. I just manaully selected the computer server as in the proposition of visual studio itself and it worked.
After trying many different suggestions here is what worked for me.
- Depends what is unavailable, source or target. Select clear source/target.
- Save changes to file
- Reopen the file and select new connection again (in my case Azure database)
- Click Compare again, now it works.
참고 URL : https://stackoverflow.com/questions/37463279/sql-schema-comparison-error-target-is-unavailable
'development' 카테고리의 다른 글
숫자를 쉼표 뒤 2 자리로 반올림 (0) | 2020.11.09 |
---|---|
Android에서 HashMap의 모든 키와 값을 인쇄하는 방법은 무엇입니까? (0) | 2020.11.09 |
Java 프로세스에서 스레드 수를 얻는 방법 (0) | 2020.11.09 |
Windows에서 프로세스를 일시 중단 / 재개하는 방법은 무엇입니까? (0) | 2020.11.09 |
ng-click의 if 문 (0) | 2020.11.09 |