SQLServer에서 얻은 레코드 데이터를 PowerShell로 CSV 파일로 출력하는 방법
2457 단어 SQLServerPowerShell
SQLServer에서 검색
업무상에서 SQLServer로부터 정보를 취득해 CSV로 한다는 안건이 많기 때문에, PowerShell로 템플리화해 보았습니다.
메인 실행 파일입니다. exec.ps1 ".\config.ps1"; . ".\sql.ps1"; ".\util-db.ps1"; #DB에서 가져오기 SQLServerSelect $dataSource $database $userId $password $sql; Config계를 정리했습니다. config.ps1 [string]$dataSource = "localhost"; [string]$database = "Database"; [string]$userId = "sa"; [string]$password = "xxxx"; SQL만 다른 파일로 제외했습니다. sql.ps1 [string]$sql = " SELECT @@version; "; SQLServer 인증으로 SQLServer에 액세스하여 Select 분을 발행하고 있습니다. CSV 형식으로 표준 출력하고 있습니다. util-db.ps1 function SQLServerSelect([string]$dataSource, [string]$database, [string]$userId, [string]$password, [string]$sql){ # SqlConnectionStringBuilder를 사용하여 SQL 연결 설정 저장 [System.Data.SqlClient.SqlConnectionStringBuilder]$connectionString = New-Object -TypeName System.Data.SqlClient.SqlConnectionStringBuilder; [object]$connectionString['Data Source'] = $dataSource; [object]$connectionString['Initial Catalog'] = $database; [object]$connectionString['User ID'] = $userId; [object]$connectionString['Password'] = $password; # DataTable을 사용하여 SQL 실행 결과를 임시로 저장 [System.Data.DataTable]$resultsDataTable = New-Object System.Data.DataTable; # SQLConnection, SQLCommand 설정 [System.Data.SQLClient.SQLConnection]$sqlConnection = New-Object System.Data.SQLClient.SQLConnection($connectionString); [System.Data.SQLClient.SQLCommand]$sqlCommand = New-Object System.Data.SQLClient.SQLCommand($sql, $sqlConnection); # 데이터베이스에 연결 [object]$sqlConnection.Open(); # ExecuteReader를 실행하여 DataTable에 데이터 저장 [object]$resultsDataTable.Load($sqlCommand.ExecuteReader()); # CSV 형식으로 표준 출력 $resultsDataTable | ConvertTo-Csv -NoTypeInformation; # 데이터베이스 연결 해제 [object]$sqlConnection.Close(); } 사용 예 1. ps1 배치 위치로 이동 2. 실행 정책 변경 Set-ExecutionPolicy RemoteSigned -Scope Process -Force 3. 실행 .\exec.ps1 > out.csv 4. 실행 정책을 반환합니다. Set-ExecutionPolicy Restricted -Scope Process -Force 악성 스크립트를 실행하지 않기 때문에 실행 정책이 기본적으로 제한되어 있을 수 있습니다. 하기 에러가 출력되는 경우는 상기 사용예의 2. 실행하십시오. 되돌리는 경우는 4. 됩니다. .\exec.ps1 : 이 시스템에서는 스크립트 실행이 비활성화되어 있기 때문에, 파일 ....ps1을 읽을 수 없습니다.
Reference
이 문제에 관하여(SQLServer에서 얻은 레코드 데이터를 PowerShell로 CSV 파일로 출력하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taskeknight/items/40d3da4a510fd2d06f48텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)