2011年1月20日木曜日

◆SQL Server PowerShellの環境を作る3

sqlps環境はPowershellのスパーセットなのかと思っていたら、どうも違うようだ。
色々と使えないコマンドがあったりして使い勝手が違う。
スーパーセットではなくサブセットなのね・・・。

そこで、通常のPowershell環境で以下のスクリプトを実行するとPowershell+SQLServer用Snapin環境となるようだ。
(MS資料からの転載)SQL Server PowerShell の実行

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037

#
# Add the SQL Server Provider.
#


$ErrorActionPreference = "Stop"

$sqlpsreg="HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps"

if (Get-ChildItem $sqlpsreg -ErrorAction "SilentlyContinue"
)
{
   
throw "SQL Server Provider for Windows PowerShell is not installed."
}
else
{
   
$item = Get-ItemProperty $sqlpsreg
    $sqlpsPath = [System.IO.Path]::GetDirectoryName($item.
Path)
}



#
# Set mandatory variables for the SQL Server provider
#

Set-Variable -scope Global -name SqlServerMaximumChildItems -Value 0
Set-Variable -scope Global -name SqlServerConnectionTimeout -Value 30
Set-Variable -scope Global -name SqlServerIncludeSystemObjects -Value $false
Set-Variable -scope Global -name SqlServerMaximumTabCompletion -Value 1000

#
# Load the snapins, type data, format data
#

Push-Location
cd
 $sqlpsPath
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
Update-TypeData -PrependPath SQLProvider.Types.ps1xml 
update-FormatData -prependpath SQLProvider.Format.ps1xml 
Pop-Location

こいつをドットソースで取り込むなり、Profileに入れておくなりしておけば以下のような感じで簡単にSQLを発行できるようになる。

PS>invoke-sqlcmd -Database pubs -Query "select * from jobs" | ft -auto

job_id job_desc                     min_lvl max_lvl
------ --------                     ------- -------
     1 New Hire - Job not specified      10      10
     2 Chief Executive Officer          200     250
     3 Business Operations Manager      175     225
     4 Chief Financial Officier         175     250
     5 Publisher                        150     250
     6 Managing Editor                  140     225
     7 Marketing Manager                120     200
     8 Public Relations Manager         100     175
     9 Acquisitions Manager              75     175
    10 Productions Manager               75     165
    11 Operations Manager                75     150
    12 Editor                            25     100
    13 Sales Representative              25     100
    14 Designer                          25     100

0 件のコメント:

コメントを投稿