Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Переименование таблицы с системным именем  [new]
cheese.dp
Member

Откуда:
Сообщений: 9
Всем привет
Microsoft SQL Server Enterprise Edition 10.0.1600.22
Создаём таблицу с любым именем в любой базе. В Enterprice Manager переименовываем таблицу в новое имя "sp_who2".
Оно успешно переименовывается Теперь нужно переименовать эту таблицу снова (на другое, не системное имя)...
Как????
13 фев 12, 15:26    [12082240]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
cheese.dp,

А что, так же в EM уже не переименовывается?
13 фев 12, 15:29    [12082264]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
cheese.dp
Всем привет
Microsoft SQL Server Enterprise Edition 10.0.1600.22
Создаём таблицу с любым именем в любой базе. В Enterprice Manager переименовываем таблицу в новое имя "sp_who2".
Оно успешно переименовывается Теперь нужно переименовать эту таблицу снова (на другое, не системное имя)...
Как????
Имена объектов уникальны в пределах схемы. А sp_who2 вообще в базе master находится.
13 фев 12, 15:30    [12082269]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
cheese.dp
Member

Откуда:
Сообщений: 9
SomewhereSomehow
cheese.dp,
А что, так же в EM уже не переименовывается?


нет
пишет

"TITLE: Microsoft SQL Server Management Studio
------------------------------
Unable to rename sp_who21. (ObjectExplorer)
------------------------------
ADDITIONAL INFORMATION:
Rename failed for Table 'dbo.sp_who2'. (Microsoft.SqlServer.Smo)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1750.9+((dac_inplace_upgrade).101209-1051+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Rename+Table&LinkId=20476
------------------------------
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Либо задан сомнительный параметр @objname, либо требуемый @objtype (OBJECT) является ошибочным. (Microsoft SQL Server, Error: 15248)
"
13 фев 12, 15:31    [12082284]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
cheese.dp
Member

Откуда:
Сообщений: 9
Гавриленко Сергей Алексеевич
cheese.dp
Всем привет
Microsoft SQL Server Enterprise Edition 10.0.1600.22
Создаём таблицу с любым именем в любой базе. В Enterprice Manager переименовываем таблицу в новое имя "sp_who2".
Оно успешно переименовывается Теперь нужно переименовать эту таблицу снова (на другое, не системное имя)...
Как????
Имена объектов уникальны в пределах схемы. А sp_who2 вообще в базе master находится.


это понятно
но вот сейчас мы создали ещё один объект с таким именем
13 фев 12, 15:32    [12082289]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
Glory
Member

Откуда:
Сообщений: 104751
Имхо, бага
sp_rename использует object_id, который возвращает неправильный id для sp_who2. Но только для схемы dbo
13 фев 12, 15:47    [12082401]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
Glory
Member

Откуда:
Сообщений: 104751
sp_who2, хоть и расположена в master, как и другие процедуры, но в каждой пользовательской базе тоже присутствует.
Отсюда и такое поведение переименования
13 фев 12, 15:49    [12082423]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Glory, так и сменить схему у такой таблицы не получится

ALTER SCHEMA mymy TRANSFER dbo.sp_who2
приводит к
Msg 15349, Level 16, State 1, Line 1
Cannot transfer an MS Shipped object.

при том что в текущей базе присутствует таблица dbo.sp_who2. видимо, сначала ищет в мастере
13 фев 12, 15:49    [12082433]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
Glory
Member

Откуда:
Сообщений: 104751
Shakill
Glory, так и сменить схему у такой таблицы не получится

Понятно, что уже не получится
Я говорил про случай, когда таблица изначально была создана в другой схеме
13 фев 12, 15:50    [12082443]     Ответить | Цитировать Сообщить модератору
 Re: Переименование таблицы с системным именем  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Создайте таблицу Sp_Who2_Log :)
13 фев 12, 15:53    [12082465]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить