PowerShell을 사용하여 SQL Server 버전 확인하는 방법
-
PowerShell에서 SQL Server 버전을 확인하기 위해
sqlcmd
유틸리티 사용하기 -
sqlcmd
유틸리티 사용의 장점과 단점 -
PowerShell을 사용하여 SQL Server 버전을 확인하기 위해
Invoke-Sqlcmd
Cmdlet 사용하기 -
PowerShell에서 SQL Server 버전을 확인하기 위해
Invoke-Sqlcmd
Cmdlet 사용의 장점과 단점 -
sqlcmd
유틸리티와Invoke-Sqlcmd
Cmdlet의 차이점 - 결론

프로그램의 버전을 확인하는 것은 PowerShell에서 수행할 수 있는 일반적인 작업 중 하나입니다. 관계형 데이터베이스 관리를 위해 Microsoft SQL 서버를 사용하고 있다면, 컴퓨터에 설치된 버전을 아는 것이 중요합니다.
이 튜토리얼에서는 PowerShell을 사용하여 SQL 서버 버전을 확인하는 두 가지 방법을 소개합니다.
PowerShell에서 SQL Server 버전을 확인하기 위해 sqlcmd
유틸리티 사용하기
sqlcmd
는 대화형 Transact-SQL 명령 및 스크립트를 실행할 수 있게 해주는 명령 줄 유틸리티입니다. Transact-SQL 스크립팅 작업을 자동화하는 데 도움을 줍니다.
구문:
sqlcmd -S ServerName\InstanceName -Q "SQL Query"
위의 구문에서 ServerName
은 SQL Server의 이름으로, InstanceName
은 SQL Server 인스턴스의 이름으로, "SQL Query"
는 실행할 특정 SQL 쿼리로 대체합니다.
다음 명령은 PowerShell에서 SQL 서버 버전을 출력합니다. DelftStack
은 서버 이름이며, SQLEXPRESS
는 SQL 서버의 인스턴스 이름입니다.
sqlcmd -S DelftStack\SQLEXPRESS -Q "SELECT @@VERSION"
우리는 Transact-SQL 명령과 스크립트를 실행하기 위한 명령줄 도구인 sqlcmd
유틸리티를 사용하고 있습니다. 이는 명령줄에서 SQL Server와 상호작용하는 방법입니다.
-S DelftStack\SQLEXPRESS
를 사용하여 연결하려는 서버와 인스턴스를 지정합니다. DelftStack
은 서버 이름이며, SQLEXPRESS
는 인스턴스 이름이며, 이 조합은 우리가 쿼리하려는 특정 SQL Server를 식별합니다.
명령의 -Q "SELECT @@VERSION"
부분은 SQL Server에 SQL 쿼리를 실행하도록 지시합니다. 이 경우 SQL Server에 버전 정보를 검색하라고 요청하고 있습니다.
SELECT @@VERSION
쿼리는 자세한 버전 정보를 반환하는 내장 SQL Server 명령입니다.
출력:
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)
Sep 24 2019 13:48:23
Copyright (C) 2019 Microsoft Corporation
Express Edition (64-bit) on Windows 10 Home Single Language 10.0 <X64> (Build 22000: )
(1 rows affected)
출력은 SQL Server 버전에 대한 자세한 정보를 표시하며, 여기에는 릴리스 및 빌드 정보가 포함됩니다. 설치된 SQL 서버 버전은 15.0.2000.5
입니다.
sqlcmd
유틸리티가 이미 설치되어 있고 시스템의 PATH에 접근 가능해야 한다는 점에 유의해야 합니다. 설치되어 있지 않거나 접근할 수 없는 경우 명령이 실패합니다.
PowerShell에서 sqlcmd
를 설치하려면 SQL Server 명령줄 유틸리티를 설치해야 하며, 이는 sqlcmd
를 포함합니다.
다음은 sqlcmd
를 설치하는 단계입니다:
-
SQL Server 명령줄 유틸리티 다운로드
Microsoft SQL Server 다운로드 페이지를 방문하세요.
"SQL Server 명령줄 도구 설치"
섹션으로 스크롤 하여"Microsoft Command Line Utilities 15 for SQL Server"
(또는 필요한 버전)의 다운로드 링크를 클릭합니다. -
설치 프로그램 실행
다운로드한 설치 프로그램(보통
.msi
파일)을 실행합니다. 설치 마법사의 지침을 따릅니다. -
구성 요소 선택
설치 중에 구성 요소를 선택하라는 메시지를 받게 됩니다.
"Command Line Utilities"
또는"sqlcmd"
를 선택해야 합니다. -
설치 마무리
설치 과정을 계속 진행하고 완료되면 시스템에
sqlcmd
가 설치됩니다. -
설치 확인
명령 프롬프트 창을 열고
sqlcmd
를 입력합니다. 올바르게 설치되었다면sqlcmd
프롬프트가 표시되어야 합니다.
SQL Server 버전에 따라 특정 단계와 설치 프로그램 이름이 다를 수 있으며, 선택하는 설치 패키지도 다를 수 있습니다. 설치 중에 sqlcmd
가 포함되도록 적절한 구성 요소를 선택해야 합니다.
또한, 명령에 제공된 서버 이름과 인스턴스 이름은 유효하고 접근 가능해야 합니다. 잘못되었거나 접근할 수 없는 경우 명령은 실패합니다.
sqlcmd
유틸리티 사용의 장점과 단점
장점:
- 스크립팅 및 자동화를 위한 명령줄 제어.
- 추가 모듈 설치 필요 없음.
- SQL Server 버전에서의 광범위한 지원.
단점:
- 출력이 덜 사용자 친화적일 수 있으며, 추가 파싱이 필요할 수 있음.
Invoke-Sqlcmd
에 비해 기능이 제한적임.
PowerShell을 사용하여 SQL Server 버전을 확인하기 위해 Invoke-Sqlcmd
Cmdlet 사용하기
Invoke-Sqlcmd
cmdlet은 SQL Server SQLCMD 유틸리티에서 지원하는 스크립트 및 명령을 실행합니다. 이는 GO
및 QUIT
와 같은 Transact-SQL 문과 명령을 수용합니다.
구문:
Invoke-Sqlcmd -query "SQL Query" -ServerInstance "ServerName\InstanceName"
위의 구문에서 "SQL Query"
는 실행할 특정 SQL 쿼리로, "ServerName\InstanceName"
은 연결하려는 SQL Server의 서버 이름과 인스턴스 이름으로 대체합니다. 이 명령은 PowerShell 내에서 SQL 쿼리를 실행하는 데 사용되며 SQL Server 작업을 PowerShell 스크립트에 통합하는 데 특히 유용합니다.
다음 명령은 PowerShell에서 SQL 서버 버전을 가져옵니다.
Invoke-Sqlcmd -query "SELECT @@VERSION" -ServerInstance "DELFT-PC\SQLEXPRESS"
우리는 SQL Server와 상호작용하기 위해 특별히 설계된 PowerShell의 일부인 Invoke-Sqlcmd
cmdlet을 사용하고 있습니다. 이를 통해 PowerShell 스크립트나 세션 내에서 SQL 명령과 쿼리를 직접 실행할 수 있습니다.
-query "SELECT @@VERSION"
명령의 일부는 우리가 실행하고자 하는 SQL 쿼리를 지정합니다. 이 경우, 우리는 SQL 쿼리 SELECT @@VERSION
을 실행하고 있으며, 이 쿼리는 연결된 SQL Server에 대한 자세한 버전 정보를 검색하는 내장 SQL Server 명령입니다.
-ServerInstance "DELFT-PC\SQLEXPRESS"
를 사용하여 다음 구성 요소로 연결할 서버와 인스턴스를 정의하고 있습니다:
-
-ServerInstance
는 연결하려는 서버와 인스턴스를 나타내는 옵션입니다. -
"DELFT-PC\SQLEXPRESS"
는 서버 이름과 인스턴스 이름이 결합된 것입니다."DELFT-PC"
는 SQL Server의 이름을 나타내고,"SQLEXPRESS"
는 해당 머신에 설치된 SQL Server의 특정 인스턴스를 나타내며, 이 조합은 우리가 쿼리하려는 정확한 SQL Server를 지정합니다.
출력:
Column1
-------
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) ...
위의 출력은 SQL Server 버전에 대한 자세한 정보를 제공하며, 릴리스 및 빌드 세부정보가 포함되어 있습니다.
Invoke-Sqlcmd
cmdlet이 인식되지 않는 경우, 아래 명령을 사용하여 설치해야 합니다:
Install-Module SqlServer
그런 다음 이 명령을 실행하여 모듈을 가져옵니다.
Import-Module SqlServer
이 접근 방식은 SQL Server 작업을 PowerShell 스크립트에 통합하고 PowerShell의 데이터 조작 및 자동화 기능을 활용하는 데 편리합니다.
Invoke-Sqlcmd
cmdlet은 현재 PowerShell 세션에서 이미 사용할 수 있다는 점에 유의해야 합니다. 필요한 모듈이 가져오지 않으면 코드는 오류로 실패합니다.
또한 지정된 SQL Server 인스턴스("DELFT-PC\SQLEXPRESS"
)가 잘못되었거나 접근할 수 없는 경우 코드는 연결하고 쿼리를 실행하는 데 실패합니다.
PowerShell에서 SQL Server 버전을 확인하기 위해 Invoke-Sqlcmd
Cmdlet 사용의 장점과 단점
장점:
- 고급 스크립팅을 위한 PowerShell과의 원활한 통합.
- 더 구조적이고 사용자 친화적인 출력.
- 복잡한 데이터베이스 작업을 위한 풍부한 기능 세트.
단점:
SqlServer
모듈 설치 필요.- SQL Server 버전과의 호환성이 다를 수 있음.
sqlcmd
유틸리티와 Invoke-Sqlcmd
Cmdlet의 차이점
PowerShell에서 SQL Server 버전을 확인하기 위해 sqlcmd
유틸리티를 사용하는 방법과 Invoke-Sqlcmd
cmdlet을 사용하는 방법의 주요 차이점은 접근 방식, 통합 및 사용 편의성으로 요약될 수 있습니다.
주요 구분점은 sqlcmd
가 PowerShell에 제한적으로 통합된 외부 유틸리티라는 사실입니다. 이는 별도의 명령줄 도구로 작동하며, PowerShell 스크립트 내에서도 사용할 수 있지만 Invoke-Sqlcmd
만큼 같은 수준의 통합 및 유연성을 제공하지 않습니다.
반면에 Invoke-Sqlcmd
는 SQL Server와 상호작용하기 위해 특별히 설계된 PowerShell 네이티브 cmdlet입니다. 이는 SQL Server 데이터를 PowerShell 스크립트 내에서 관리하기 위한 더 강력하고 통합된 접근 방식을 제공하며, PowerShell과의 원활한 통합, 구조적 출력 및 고급 데이터 조작 기능을 허용합니다.
결론
이 튜토리얼에서는 sqlcmd
유틸리티와 Invoke-Sqlcmd
cmdlet을 사용하여 PowerShell에서 SQL Server 버전을 확인하는 두 가지 방법을 탐구했습니다.
명령줄 도구인 sqlcmd
유틸리티는 명령줄 제어를 제공하고 추가 모듈 설치가 필요하지 않습니다. 그러나 출력은 추가 파싱이 필요할 수 있으며, Invoke-Sqlcmd
에 비해 기능이 제한적입니다.
PowerShell 네이티브 도구인 Invoke-Sqlcmd
cmdlet은 PowerShell과의 원활한 통합, 구조적이고 사용자 친화적인 출력 및 폭넓은 SQL Server 기능을 제공합니다. однако SqlServer
모듈을 설치해야 합니다.
모든 경우에 소프트웨어와 모듈 이름이 시간이 지남에 따라 변경될 수 있으므로, 현재 환경에 따라 모듈 이름과 버전을 확인하는 것이 좋습니다. 이는 제공된 코드와 방법이 여전히 관련 있고 기능적임을 보장합니다.