В BOL описывается данная функция следующим образом:
1 2 3 4 5 6 |
Изменяет имя пользовательского объекта в текущей базе данных. В следующем примере таблица SalesTerritory в схеме Sales переименовывается в SalesTerr. USE AdventureWorks2012; GO EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr'; GO |
Если читать BOL очень внимательно, то ошибку можно не допустить, но часто мы бегло пробегаем документацию и додумываем работу некоторых механизмов самостоятельно. На днях я наблюдал попытку переименовать таблицу следующим образом:
1 2 3 |
EXEC [sys].[sp_rename] @objname = N'dbo.Whatever' , @newname = N'dbo.Whatever_New' |
Удивлению человека не было предела, когда он увидел результат:
Если бы документация была прочитана и понята полностью, то фраза
1 |
"Изменяет имя пользовательского объекта в текущей базе данных" |
Могла подсказать нам, что с помощью данной процедуры мы меняем только имя объекта, без изменения схемы.
На данном примере я хотел продемонстрировать, как важно не просто прочитать документацию, но и немного задуматься.