$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "integrated security=SSPI;`
data source=$ServerName;`
initial catalog=$DatabaseName;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "sp_sw_rtree_is_created"
$SqlCmd.Connection = $SqlConnection
$SqlCmd.CommandType = [System.Data.CommandType]'StoredProcedure';
$SqlCmd.Parameters.AddWithValue("@owner", "$OwnerName") >> $null;
$SqlCmd.Parameters.AddWithValue("@table", "$TableName") >> $null;
$SqlCmd.Parameters.AddWithValue("@spatialcolumn", "$SpatialColumn") >> $null;
$SqlCmd.Parameters.AddWithValue("@keycolumn", "$KeyColumn") >> $null;
$outParameter = new-object System.Data.SqlClient.SqlParameter;
$outParameter.ParameterName = "@truth";
$outParameter.Direction = [System.Data.ParameterDirection]'Output';
$outParameter.DbType = [System.Data.DbType]'Boolean';
$SqlCmd.Parameters.Add($outParameter) >> $null;
$SqlConnection.Open();
$result = $SqlCmd.ExecuteNonQuery();
$truth = $SqlCmd.Parameters["@truth"].Value;
$SqlConnection.Close();
$truth;
When you run this PowerShell script, you should get response of True or False depending on whether the R-Tree spatial index is created or not.
1 comment:
Thanks! you save my life :-)
Since 2 days, I was trying to get a return value from a Stored Proc... Now I know that you need a new-object System.Data.SqlClient.SqlParameter to get this value!
Happy DBA!
Post a Comment