Используйте sp_rename
для переименования объектов.Ниже приведен пример, который генерирует и выполняет необходимый скрипт.
DECLARE @SQL nvarchar(MAX) =
(SELECT 'EXEC sp_rename ''' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ''', ''' + SUBSTRING(t.name, CHARINDEX('PP_', t.name),LEN(t.name)) + ''';'
FROM sys.tables AS t
JOIN sys.schemas AS s ON s.schema_id = t.schema_id
WHERE CHARINDEX('PP_', t.name) > 0
FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)');
EXEC sp_executesql @SQL;
Чтобы ответить на дополнительный вопрос, заданный в комментариях, вы можете сгенерировать один оператор DROP TABLE для этих таблиц, используя скрипт ниже.Обратите внимание, что этот метод может не работать, если таблицы имеют отношения внешнего ключа, так как он не сбрасывается в порядке зависимости.
DECLARE @SQL nvarchar(MAX) =
N'DROP TABLE ' + STUFF((SELECT ',' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name)
FROM sys.tables AS t
JOIN sys.schemas AS s ON s.schema_id = t.schema_id
--WHERE CHARINDEX('PP_', t.name) > 0
FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)'),1,1,'')
+ N';';