Мне просто интересно, есть ли способ указать подсказку запроса при вызове хранимой процедуры с использованием объекта SQLCommand?SQLCommand Object для указания подсказки запроса
Например, мне нужно вызвать что-то вроде этого
EXECUTE SPName'0068', 40 WITH RECOMPILE
Я просто удивляюсь, как я могу имитировать это с помощью объекта SqlCommand.
Dim connection As New SqlClient.SqlConnection("server=(local);database=DEV;Persist Security Info=True;uid=sa;pwd=;")
connection.Open()
Dim cmd As New SqlClient.SqlCommand
With cmd
.Connection = connection
.CommandText = "Warehouse_AdjustInventory_byWarehouse_u"
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@ProductID", "0068")
.Parameters.AddWithValue("@WarehouseID", 40)
End With
Try
Dim result As Integer = cmd.ExecuteNonQuery()
Trace.WriteLine(result)
Catch ex As Exception
Trace.WriteLine(ex.Message)
End Try
connection.Close()
Поддерживает ли SQLCommand подсказки запросов, такие как RECOMPILE? спасибо
* Почему вы хотите использовать 'WITH RECOMPILE'? Это сделает вашу хранимую процедуру медленнее *. Если хранимая процедура использует неэффективные методы, такие как изменение предикатов WHERE, было бы лучше исправить запрос. Если вы хотите, чтобы хранимая процедура перекомпилировалась все время, просто добавьте предложение WITH WITH RECOMPILE' к его определению –