2010. 7. 26. 19:51
안녕하세요. 엉스데브 입니다.
PowerShell 로 필요한 스크립트를 만들던 중, MSSQL 서버에 저장 되어 있는 데이터를 참조해야 하는 경우가 생겼습니다.
PowerShell 은 .NET Framework 기반의 언어이기 때문에 .NET Framework 가 제공하는 여러 클래스를 사용 할 수 있으며, 이 클래스 들 중에는 MSSQL 접속 및 데이터 조회 / 수정을 위한 클래스 들도 있습니다. 이 클래스 들을 이용해서 직접 사용 할 MSSQL 관련 함수들을 만들어 보았습니다.
Function Query-Mssql
{
Param(
[parameter(Mandatory=$true)][String]$Query,
[parameter(Mandatory=$true)][String]$Server,
[parameter(Mandatory=$true)][String]$Id,
[parameter(Mandatory=$true)][String]$Password,
[parameter(Mandatory=$true)][String]$DBName,
[Int32]$Timeout = "30"
)
$Conn = New-Object System.Data.SqlClient.SqlConnection
$Conn.ConnectionString = "Server=" + $Server + ";Database=" + $DBName + ";User ID=" + $Id + ";Password=" + $Password
$Conn.Open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Query
$SqlCmd.Connection = $Conn
$SqlCmd.CommandTimeout = $Timeout
Return $SqlCmd.ExecuteNonQuery()
}
{
Param(
[parameter(Mandatory=$true)][String]$Query,
[parameter(Mandatory=$true)][String]$Server,
[parameter(Mandatory=$true)][String]$Id,
[parameter(Mandatory=$true)][String]$Password,
[parameter(Mandatory=$true)][String]$DBName,
[Int32]$Timeout = "30"
)
$Conn = New-Object System.Data.SqlClient.SqlConnection
$Conn.ConnectionString = "Server=" + $Server + ";Database=" + $DBName + ";User ID=" + $Id + ";Password=" + $Password
$Conn.Open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Query
$SqlCmd.Connection = $Conn
$SqlCmd.CommandTimeout = $Timeout
Return $SqlCmd.ExecuteNonQuery()
}
Function Get-MssqlData
{
Param(
[parameter(Mandatory=$true)][String]$Query,
[parameter(Mandatory=$true)][String]$Server,
[parameter(Mandatory=$true)][String]$Id,
[parameter(Mandatory=$true)][String]$Password,
[parameter(Mandatory=$true)][String]$DBName,
[Int32]$Timeout = "30"
)
$Conn = New-Object System.Data.SqlClient.SqlConnection
$Conn.ConnectionString = "Server=" + $Server + ";Database=" + $DBName + ";User ID=" + $Id + ";Password=" + $Password
$Conn.Open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Query
$SqlCmd.Connection = $Conn
$SqlCmd.CommandTimeout = $Timeout
$SqlDataAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlDataAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlDataAdapter.Fill( $DataSet )
Return $DataSet.Tables
}
{
Param(
[parameter(Mandatory=$true)][String]$Query,
[parameter(Mandatory=$true)][String]$Server,
[parameter(Mandatory=$true)][String]$Id,
[parameter(Mandatory=$true)][String]$Password,
[parameter(Mandatory=$true)][String]$DBName,
[Int32]$Timeout = "30"
)
$Conn = New-Object System.Data.SqlClient.SqlConnection
$Conn.ConnectionString = "Server=" + $Server + ";Database=" + $DBName + ";User ID=" + $Id + ";Password=" + $Password
$Conn.Open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Query
$SqlCmd.Connection = $Conn
$SqlCmd.CommandTimeout = $Timeout
$SqlDataAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlDataAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlDataAdapter.Fill( $DataSet )
Return $DataSet.Tables
}
Query-Mssql
#아래 더보기를 클릭하시면 다소 복잡한 스크립트 설명을 볼 수 있습니다.#
이제 PowerShell 에서 MSSQL 데이터도 엑세스 및 수정 할 수 있으니, 좀 더 정교한 스크립트를 만들어 봐야 겠습니다. ^^
<참고 URL>
http://nsjokt.springnote.com/pages/5657751
'Powershell > 엉스데브' 카테고리의 다른 글
PowerShell 용 df (disk freespace) 명령어. (1) | 2010.08.12 |
---|---|
PowerShell 의 현재 실행 권한 확인 하기 (0) | 2010.08.02 |
PowerShell 에서 사용 할 간단한 wget 명령어 (0) | 2010.07.26 |
PowerShell 을 통해 IIS 관리하기(WebAdministration 모듈) (0) | 2010.07.26 |
PowerShell 스크립트 작성시 주석 달기 (0) | 2010.07.22 |