PowerShell
PowerShell SQL 쿼리
수색…
소개
이 문서를 통해 Powershell로 SQL 쿼리를 사용하는 방법을 알 수 있습니다.
매개 변수
목 | 기술 |
---|---|
$ ServerInstance | 여기서 우리는 데이터베이스가있는 인스턴스에 대해 언급해야합니다. |
$ 데이터베이스 | 여기서 우리는 테이블이있는 데이터베이스에 대해 언급해야합니다. |
$ 쿼리 | 여기 우리가 SQ에서 실행하기를 원하는 쿼리가 있습니다. |
$ 사용자 이름 및 $ 암호 | 데이터베이스에 액세스 할 수있는 사용자 이름 및 암호 |
비고
SQLPS 모듈을 가져올 수없는 경우 아래 함수를 사용할 수 있습니다.
function Import-Xls
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param(
[parameter(
mandatory=$true,
position=1,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[String[]]
$Path,
[parameter(mandatory=$false)]
$Worksheet = 1,
[parameter(mandatory=$false)]
[switch]
$Force
)
Begin
{
function GetTempFileName($extension)
{
$temp = [io.path]::GetTempFileName();
$params = @{
Path = $temp;
Destination = $temp + $extension;
Confirm = $false;
Verbose = $VerbosePreference;
}
Move-Item @params;
$temp += $extension;
return $temp;
}
# since an extension like .xls can have multiple formats, this
# will need to be changed
#
$xlFileFormats = @{
# single worksheet formats
'.csv' = 6; # 6, 22, 23, 24
'.dbf' = 11; # 7, 8, 11
'.dif' = 9; #
'.prn' = 36; #
'.slk' = 2; # 2, 10
'.wk1' = 31; # 5, 30, 31
'.wk3' = 32; # 15, 32
'.wk4' = 38; #
'.wks' = 4; #
'.xlw' = 35; #
# multiple worksheet formats
'.xls' = -4143; # -4143, 1, 16, 18, 29, 33, 39, 43
'.xlsb' = 50; #
'.xlsm' = 52; #
'.xlsx' = 51; #
'.xml' = 46; #
'.ods' = 60; #
}
$xl = New-Object -ComObject Excel.Application;
$xl.DisplayAlerts = $false;
$xl.Visible = $false;
}
Process
{
$Path | ForEach-Object {
if ($Force -or $psCmdlet.ShouldProcess($_)) {
$fileExist = Test-Path $_
if (-not $fileExist) {
Write-Error "Error: $_ does not exist" -Category ResourceUnavailable;
} else {
# create temporary .csv file from excel file and import .csv
#
$_ = (Resolve-Path $_).toString();
$wb = $xl.Workbooks.Add($_);
if ($?) {
$csvTemp = GetTempFileName(".csv");
$ws = $wb.Worksheets.Item($Worksheet);
$ws.SaveAs($csvTemp, $xlFileFormats[".csv"]);
$wb.Close($false);
Remove-Variable -Name ('ws', 'wb') -Confirm:$false;
Import-Csv $csvTemp;
Remove-Item $csvTemp -Confirm:$false -Verbose:$VerbosePreference;
}
}
}
}
}
End
{
$xl.Quit();
Remove-Variable -name xl -Confirm:$false;
[gc]::Collect();
}
}
SQLExample
MachineName 테이블의 모든 데이터를 쿼리하기 위해 아래와 같은 명령을 사용할 수 있습니다.
$ Query = "Select * from MachineName"
$ Inst = "ServerInstance"
$ DbName = "DatabaseName
$ UID = "사용자 ID"
$ Password = "Password"
Invoke-Sqlcmd2 -Serverinstance $Inst -Database $DBName -query $Query -Username $UID -Password $Password
SQLQuery
MachineName 테이블의 모든 데이터를 쿼리하기 위해 아래와 같은 명령을 사용할 수 있습니다.
$ Query = "Select * from MachineName"
$ Inst = "ServerInstance"
$ DbName = "DatabaseName
$ UID = "사용자 ID"
$ Password = "Password"
Invoke-Sqlcmd2 -Serverinstance $Inst -Database $DBName -query $Query -Username $UID -Password $Password
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow