SQL Server 2005/2008, дБ = пользователь = схема = владелец = 'Джон', ASP.net 2.0.50727, VB, IIS7
Я перемещаю сайт с одного сервера на другой. Этот фрагмент кода хорошо работает на старом сервере с SQL Server 2005.
Dim sqlCmdVehicle As SqlCommand = New System.Data.SqlClient.SqlCommand("SP_Name", sqlConn)
Dim dtVehicle As New DataTable
With sqlCmdVehicle
.Parameters.AddWithValue("FullStockNo", "N102010")
.CommandType = CommandType.StoredProcedure
End With
sqlConn.Open()
sqlAdapter.SelectCommand = sqlCmdVehicle
sqlAdapter.Fill(dtVehicle)
БД резервируется и успешно восстанавливается на новом сервере. Когда я пытаюсь запустить новый SQL Server 2008, я получаю сообщение об ошибке:
Не удалось найти хранимую процедуру 'SP_Name'. указывая на последнюю строку.
Я могу видеть процедуры с «MS SQL Management Studio» не как dbo.SP_Name, а как John.SP_Name
Когда я меняюсь
System.Data.SqlClient.SqlCommand("SP_Name", sqlConn)
в
System.Data.SqlClient.SqlCommand("John.SP_Name", sqlConn)
все работает хорошо, но то же самое со всеми другими процедурами и множеством подобных мест в коде: (
Я получил http://msdn.microsoft.com/en-us/library/ms189915.aspx,, но схема вызывающего абонента по умолчанию верна.
Опять же, все хорошо работает на старой коробке.
Что я должен исправить в SQL, чтобы разрешить запуск SP без явно упомянутого имени пользователя / схемы?
Спасибо.
======================================
К сожалению, я не нашел хорошего решения. Я выбрал поиск и замену SP_Name на John.SP_Name для всего проекта. Спасибо всем участникам.