我在我的Windows2008Server上设置了一个ODBC连接,并且我正在尝试用Powershell文件替换一些执行某些处理的.BAT文件。
有没有办法在PowerShell中做同样的事情呢?
CALL osql /instanceName /Uuser /Ppassword /Q"EXECUTE storedProcName @Parm1= %ePROFILE%,@PARAMET2= N'%eValList%‘
发布于 2010-02-20 10:25:06
如果您希望在查询数据库后使用实际的Powershell对象,可以使用我最近编写的如下函数:
function Query-DatabaseTable ( [string] $server , [string] $dbs, [string] $sql )
{
$Columns = @()
$con = "server=$server;Integrated Security=true;Initial Catalog=$dbs"
$ds = new-object "System.Data.DataSet" "DataSet"
$da = new-object "System.Data.SqlClient.SqlDataAdapter" ($con)
$da.SelectCommand.CommandText = $sql
$da.SelectCommand.Connection = $con
$da.Fill($ds) | out-null
$ds.Tables[0].Columns | Select ColumnName | % { $Columns += $_.ColumnName }
$res = $ds.Tables[0].Rows | Select $Columns
$da.Dispose()
$ds.Dispose()
return $res
}发布于 2010-02-20 05:52:41
SQL Server2008提供了一个名为invoke-sqlcmd的osql Powershell cmdlet,它可以执行与Powershell中的osql相同类型的操作。也就是说,如果你想继续使用osql,你应该能够这样做,并继续使用你的Windows用户varaialbes:
osql /instanceName /Uuser /Ppassword /Q“执行storedProcName @Parm1= $env:ePROFILE,@param2 = N'$env:eValList‘
https://stackoverflow.com/questions/2299355
复制相似问题