Stored procedures powershell 1.0中的osql?

Stored procedures powershell 1.0中的osql?,stored-procedures,powershell,Stored Procedures,Powershell,我在Windows 2008服务器上设置了ODBC连接,我正在尝试用Powershell文件替换一些进行某些处理的.BAT文件 有没有办法在PowerShell中执行与此相同的操作 调用osql/instanceName/Uuser/Ppassword/Q“EXECUTE storedProcName@Parm1=%ePROFILE%,@param2=N'%eValList%'SQL Server 2008提供了一个名为invoke sqlcmdlet的osql Powershell cmdle

我在Windows 2008服务器上设置了ODBC连接,我正在尝试用Powershell文件替换一些进行某些处理的.BAT文件

有没有办法在PowerShell中执行与此相同的操作


调用osql/instanceName/Uuser/Ppassword/Q“EXECUTE storedProcName@Parm1=%ePROFILE%,@param2=N'%eValList%'

SQL Server 2008提供了一个名为invoke sqlcmdlet的osql Powershell cmdlet,它执行与Powershell中的osql相同类型的操作。也就是说,如果您想继续使用osql,您应该能够执行类似操作,并继续使用Windows用户varailbes:


osql/instanceName/Uuser/Ppassword/Q“EXECUTE storedProcName@Parm1=$env:ePROFILE,@param2=N'$env:eValList'

SQL Server 2008提供了一个名为invoke-sqlcmdlet的osql Powershell cmdlet,它执行与Powershell中的osql相同类型的操作。也就是说,如果您想继续使用osql,您应该能够执行类似操作,并继续使用Windows用户varailbes:


osql/instanceName/Uuser/Ppassword/Q“EXECUTE storedProcName@Parm1=$env:ePROFILE,@param2=N'$env:eValList'

如果您希望在查询数据库后使用实际的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
}

如果您希望在查询数据库后使用实际的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
}

谢谢。现在我只有一个权限错误。是时候给DBA打电话了。:)谢谢。现在我只有一个权限错误。是时候给DBA打电话了。:)谢谢。我想我会修改它,为我当前的应用程序返回一个标量值。这比我要替换的文件要好得多。谢谢。我想我会修改它,返回一个标量值我当前应用程序的值。这比我要替换的文件要好得多。