PowerShell에서 SQLCMD를 통해 LocalDB에 연결


11

SQLCMD 유틸리티를 사용하여 PowerShell을 통해 컴퓨터의 "localdb \ MSSQLLocalDB"서버에 액세스하려고합니다. PowerShell v5, .NET v5.0을 사용하고 있으며 서버 이름은 (localdb)\MSSQLLocalDBMicrosoft SQL Server Management Studio 2014에서 서버 이름에 연결할 때입니다.

PS C:\> sqlcmd -S localdb\MSSQLLocalDB그리고 PS C:\> sqlcmd -S .\localdb\MSSQLLocalDB이 오류가 발생합니다 :

Sqlcmd : 오류 : SQL Server 용 Microsoft ODBC 드라이버 11 : SQL Server 네트워크 인터페이스 : 서버 / 인스턴스 지정 오류 [xFFFFFFFF].

Management Studio에서 서버 이름을 쿼리하여 위 명령에서 SELECT @@ServerName사용한 후 -S동일한 오류가 발생했습니다.

PS C:\> sqlcmd -S localdb 이 오류가 발생합니다 :

Sqlcmd : 오류 : SQL Server 용 Microsoft ODBC 드라이버 11 : 명명 된 파이프 공급자 : SQL Server에 대한 연결을 열 수 없습니다 [53]

기타 참고 사항 : 이 연결 문자열을 사용하여 서버에 연결 하고 C # 콘솔 앱에서 testdb01 이라는 데이터베이스로 작업 할 수 있습니다 System.Data.SqlClient.

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"

답변:


9

인스턴스 이름의 케이스는 중요하지 않습니다.

시도해야합니다 :

sqlcmd -S "(localdb)\MSSQLLocalDB" -d testdb01

"localdb"부분은 연결 문자열에서 참조 될 때 자동 인스턴스 시작을 허용하는 SQL Server Express LocalDB 관련 API를 가리키는 특수 구문이므로 괄호로 묶어야합니다. 전체 인스턴스 이름은 큰 따옴표로 묶어야합니다. 위에 표시된 명령 줄은 적어도 PowerShell 외부에서 작동합니다.


(localdb)괄호를 포함 하면 명령으로 구분되어 다음과 같은 오류가 발생합니다. 'localdb'라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다.
jmk22

@ jmk22 그런 다음 전체 서버 이름을 큰 따옴표로 묶어보십시오 : -S "(localdb)\MSSQLLocalDB". 그래도 문제가 해결되지 않으면 괄호를 벗어날 수 있습니다. 그러나 어떻게 든 그 외향이 있어야합니다.
Solomon Rutzky

1
견적은 감사했습니다! 이것을 반영하기 위해 귀하의 답변을 편집했습니다.
jmk22
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.