program tip

SQL Server Management Studio에서 SQLCMD 모드 란 무엇입니까?

radiobox 2021. 1. 7. 07:51
반응형

SQL Server Management Studio에서 SQLCMD 모드 란 무엇입니까?


SQL Server Management Studio에서 SQLCMD 모드가 무엇인지 알고 싶습니다.


정확히 어떻게 들리는 지.

SQLCMD 스크립트를 작성할 수있는 모드입니다.

MSDN에서- 쿼리 편집기로 SQLCMD 스크립트 편집 :

데이터베이스 엔진 쿼리 편집기를 사용하여 SQLCMD 스크립트를 작성하거나 편집하려면 SQLCMD 스크립팅 모드를 사용하도록 설정해야합니다.

SQL Server Management Studio에서 쿼리 메뉴 (쿼리-> SQLCMD 모드)를 통해 설정합니다.


나는 더 많은 연구를 했으므로 지금까지 작성된 내용을 확장하기 위해 이것에 대한 이해가 있습니다.

SQLCMD 란?

SQLCMD.exe 는 SQL Server 2005 이상 설치에 포함 된 콘솔 유틸리티입니다. 일반적으로와 같은 경로에서 찾을 수 있습니다 c:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE.

SQL 서버와 관련된 작업을 자동화 할 수있는 간단한 스크립팅 환경입니다. 예를 들어 SQL Server의 특정 인스턴스에 로그인하는 스크립트를 작성 및 실행하고,이 연결의 지정된 디렉터리에서 스크립트를 실행하고, 지정된 파일에 출력을 저장할 수 있습니다.

Invoke-Sqlcmd cmdlet은이 도구를 표준화 된 Powershell 기반 접근 방식으로 대체하기위한 수단으로 SQL Server 2008에 도입되어 대부분의 원래 구문과 기능을 유지합니다.

SSMS의 SQLCMD 모드 란?

SSMS에서 SQLCMD 모드 는 sqlcmd.exe 환경을 시뮬레이션하는 스크립트 실행 모드이므로 T-SQL 언어의 일부가 아닌 일부 명령을 허용합니다. 와 달리 ODBC 데이터 공급자가 아닌 SqlClient (SSMS와 동일한 방식)를 sqlcmd.exe사용하여 데이터베이스에 연결 하므로 일부 측면에서 .sqlcmd.exe

SQLCMD 모드에서 스크립트를 실행하면 sqlcmd.exe환경에 일반적인 명령을 사용할 수 있습니다. 그러나 SQLCMD 모드에 대한 IntelliSense 또는 디버깅 지원이 없으므로 깨끗한 T-SQL과 SQLCMD 관련 코드를 혼합하는 스크립트를 유지 관리하는 것이 어려울 수 있습니다. 따라서 필요할 때만 사용해야합니다.

사용 사례 예

회사에 이름에 환경이 포함 된 데이터베이스에 대한 명명 규칙이 있다고 가정 해 보겠습니다 (예 : MyDb_ Prod , MyDb_ Test , MyDb_ Dev) . 이 규칙 은 실수 가능성최소화 하는 데 사용될 수 있습니다 .

개발자가 T-SQL 스크립트를 작성할 때 배포 / 테스트 프로세스의 다양한 환경에서 실행해야하며, 여러 버전의 코드가 필요합니다.

 SELECT *
 FROM [MyDb_Dev].[dbo].[MyTable1] -- MyDb_Dev -> MyDb_Test -> MyDb_Prod

대신 데이터베이스 이름이 배포 프로세스에서 SQLCMD 변수로 제공되고 모든 환경에 정확히 동일한 파일이 배포된다고 가정 할 수 있습니다.

 -- :setvar databaseName "MyDb_Dev" -- uncomment for testing in SSMS

 SELECT *
 FROM [$(databaseName)].[dbo].[MyTable1]

(이 간단한 예제에서는 데이터베이스 이름을 모두 생략 할 수 있지만 데이터베이스 간 조인이있는 경우 데이터베이스 이름을 사용해야합니다.)


"동일한 스크립트에서 Windows 시스템 명령과 Transact-SQL 문을 처리해야 할 때 SQLCMD 스크립트를 사용합니다."

"기본적으로 SQLCMD 모드는 쿼리 편집기에서 활성화되어 있지 않습니다. 도구 모음에서 SQLCMD 모드 아이콘을 클릭하거나 쿼리 메뉴에서 SQLCMD 모드를 선택하여 스크립팅 모드를 활성화 할 수 있습니다."

참조 : MSDN

참조 URL : https://stackoverflow.com/questions/9097109/in-sql-server-management-studio-what-is-sqlcmd-mode

반응형