В настоящее время я занимаюсь техническим обслуживанием приложения, и я столкнулся с большой проблемой относительно квалифицированного имени в tsql. Мне интересно, может ли кто-то очистить меня от замешательства.Квалифицированное присвоение имен
С моей точки зрения вы хотите использовать USE [DatabaseName]
, чтобы объявить, какую базу данных вы используете. Я замечаю, что если «переименовать» базу данных, она автоматически обновит эти ссылки в вашем коде.
Однако разработчик, который изначально написал этот код, использовал USE [DatabaseName]
. Затем в последующих утверждениях он писал: SELECT * FROM [DatabaseName].[dbo].[Table]
. Ну, это явно ломается, если я изменю имя базы данных. Из того, что я читал, вы хотите присвоить имена только владельцу, например: [dbo].[TableName]
, чтобы он знал, где искать, что увеличивает производительность.
Есть ли причина, по которой он включил имя базы данных в каждое утверждение?
Итак, создавайте синонимы? Потому что, если я использую классификатор 3 или 4 части, а затем переименую базу данных, мне придется пройти и исправить все имена. Я просто говорю об этом, потому что, когда я переименовал db, он автоматически исправил инструкции «USE», но не обновил ни одно из 3-х именованных имен. – MisterIsaak
@Jisaak: Нет, не использовали синонимы на SQL Server. Обновление имени базы данных очень просто - SSMS Find (Ctrl-F) имеет функцию поиска и замены для регулярного выражения, например, глобальной замены. –
Хм. Ну с 100 sprocs, которые все еще кажутся болезненными. Спасибо за помощь. – MisterIsaak