2

호스트 된 에이전트의 VSTS 빌드 태스크에서 PowerShell 스크립트의 일부로 Azure SQL 데이터베이스에 대해 SQL을 실행하는 방법은 무엇입니까?Visual Studio Team Services 빌드 작업의 일부로 PowerShell 스크립트에서 SQL을 실행하는 방법은 무엇입니까?

빌드 정의에 사용할 수 많은 작업이 있습니다 : 우리는 원격에서 PowerShell을 PowerShell 스크립트

enter image description here

을 실행하거나 실행도 DACPAC 또는 SQLCMD

enter image description here

또는를 사용하여 SQL을 배포 할 수 있습니다 기계

enter image description here

그러나 PowerShell 스크립트의 일부로 SQL을 단순히 실행하는 방법은 무엇입니까? Invoke-Sqlcmd는 'Azure PowerShell'작업의 일부로 사용할 수 없습니다.

응용 프로그램 서비스에 원격 데스크톱을 설치하고 SQL Server 관련 비트를 설치하고 대상 컴퓨터에서 'PowerShell'을 사용하는 것이 가능할 것이라고 추측합니다.하지만 더 간단한 방법이 있어야한다고 생각합니다. 아마도 누락되었습니다. 뭔가 명백한

+0

호스트 된 에이전트 또는 개인 에이전트를 사용하고 있습니까? 귀하의 SQL 서버가 온 - SQL SQL 인스턴스 또는 Azure SQL 인스턴스입니까? –

+0

호스팅 된 에이전트 및 Azure SQL 데이터베이스. 질문 업데이트 됨 – karl25233

답변

1

Azure SQL 데이터베이스 배포 작업을 사용할 수 있습니다. SQL 스크립트 파일과 인라인 SQL 스크립트 유형이 있습니다.

enter image description here

참고 : 호스트 에이전트를 사용하지만 VS에게 2017 에이전트를 호스팅 할 수 없습니다.

+0

SQL 배치 스크립트는 사용자 지정 PowerShell 스크립트에서 실행해야합니다. 이것은 데이터베이스 버전 관리에 사용됩니다. 최소한 Invoke-Sqlcmd – karl25233

+0

@thomius를 통해 가능한 오류를 종료 할 수 있어야합니다. 대신 Hosted agent (vs2017 호스팅되지 않음)를 사용하면 PowerShell 스크립트에서 Invoke-SqlCmd를 호출 할 수 있습니다. –

+0

그 (vs2017 대신에 호스팅) 트릭을 했어! – karl25233

1

그러나 PowerShell 스크립트의 일부로 SQL을 단순히 실행하는 방법은 무엇입니까? Invoke-Sqlcmd는 'Azure PowerShell'작업의 일부로 사용할 수 없습니다.

나는 우리가 푸른 SQL 데이터베이스에 푸른 PowerShell로 SQL을 실행하려면이 PowerShell 스크립트를 사용할 수 있다고 생각 :

enter image description here

는 또한 우리가 사용할 수 있습니다 여기에

$connectionString = "Data Source=jasontest321.database.windows.net;Initial Catalog=jasonsql;User ID=jason;Password='password';Connection Timeout=90" 
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString) 
$query = "insert into test1 values (3) ; ;" 
$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($query, $connection) 
$connection.Open() 
$command.ExecuteNonQuery() 
$connection.Close() 

내 테스트입니다 Azure 포털 쿼리 편집기를 사용하면 다음과 같이 테이블을 쿼리 할 수 ​​있습니다.

enter image description here

+0

오류로 중지 할 수 있습니까? 우리는 GO 명령문으로 분리 된 스키마 업데이트를 포함하는 패치를 수행하고 있습니다 (현재 버전이 지원되지 않는 경우 오류/종료) – karl25233

+0

로직을 얻기 위해 powershell을 사용한다는 것을 의미합니까? 예, PowerShell을 사용하여 버전을 확인하고 실행할 수 있습니다 그 스크립트. –

+0

@thomius 제공된 정보가 도움이되었는지 확인하기 만하면 도움이 필요하시면 알려주세요. –