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