я создал глобальную временную таблицу, как это -Невозможно переименовать столбец временной таблицы
CREATE TABLE ##BigTable
(Nos varchar(10) null)
Затем попробуйте переименовать столбец Nos, как это -
EXEC sp_RENAME '##BigTable.Nos' , 'Numbers', 'COLUMN'
я получил ошибку -
Either the parameter @objname is ambiguous or the
claimed @objtype (COLUMN) is wrong.
Почему это может происходить и как я могу решить проблему?
EXTRA материал не совсем связан с вопросом, но для справки.
Я хочу добавить это - я попытался создать глобальную временную таблицу, используя полное имя, как это -
CREATE TABLE [NotMyTempDataBase].[dbo].[##BigTable]
(Nos varchar(10) null)
Затем я попытался переименовать его с помощью -
EXEC tempdb.sys.sp_rename N'[NotMyTempDataBase].[dbo].[##BigTable].Nos',
N'Numbers', N'COLUMN';
Ошибка - Квалифицированное @oldname ссылается на базу данных, отличную от текущей базы данных.
Это неправильно. Я понял, что временная таблица создана в системной базе данных tempdb, хотя при ее создании указывается другое имя БД.
использовать это вместо этого -
CREATE TABLE [tempdb].[dbo].[##BigTable]
(Nos varchar(10) null)
--SQL сообщение сервера: Имя базы данных 'Tempdb' игнорируются, ссылки на объект в базе данных TempDb.
EXEC tempdb.sys.sp_rename N'[tempdb].[dbo].[##BigTable].Nos',
N'Numbers', N'COLUMN';
Как в стороне и просто из любопытства вы действительно собираетесь хранить цифры в столбце 'varchar'? Если да, то почему? –
@AndriyM - Нет. Это просто пример, демонстрирующий проблему. – HappyCoder