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

Откуда:
Сообщений: 191
Добрый день.


Переименовал процедуру скриптом:


EXEC sp_rename 'dbo.my_proc', 'dbo.my_proc_tmp'; 



И она пропала из ssms.


При этом

SELECT * FROM sys.sysobjects WHERE UPPER(name) LIKE 'MY_PROC%'


ничего не выводит.



DROP PROCEDURE [dbo].[my_proc_tmp]


Сообщение 3701, уровень 11, состояние 5, строка 8
Не удалось удалить процедура "dbo.my_proc_tmp", так как он не существует или отсутствуют разрешения.






Создал заново dbo.my_proc


И переименовать в tmp не дает:


EXEC sp_rename 'dbo.my_proc', 'dbo.my_proc_tmp'; 





Не удалось найти элемент с именем my_proc_tmp в текущей базе данных, указывающий на то, что @itemtype был введен в виде "(null)".







Ничего не понимаю.

Как так?


Проде есть процедура и вроде нет.
18 фев 21, 17:56    [22283013]     Ответить | Цитировать Сообщить модератору
 Re: Переименовал процедуру и она пропала! Ни создать такую же не дает ни дропнуть!  [new]
ssms
Member

Откуда:
Сообщений: 191
Так.... создать dbo.my_proc_tmp как-то все-таки получилось и дропнуть потом тоже получилось, после создания.


Но я так и не понял что это было :-(((
18 фев 21, 17:58    [22283014]     Ответить | Цитировать Сообщить модератору
 Re: Переименовал процедуру и она пропала! Ни создать такую же не дает ни дропнуть!  [new]
ssms
Member

Откуда:
Сообщений: 191
так....


я создаю dbo.my_proc_tmp.

она появляется в sys.sysobjects



удаляю, она исчезает из sys.sysobjects




Но переименовать в нее sql server все равно не дает.



EXEC sp_rename 'dbo.my_proc', 'dbo.my_proc_tmp'; 



сообщение: 15335, уровень: 11, состояние: 1, процедура: sp_rename, строка: 408 [строка начала пакета: 0]
Ошибка: новое имя "dbo.my_proc_tmp" уже используется для object, повторение запрещено.




Как так?
18 фев 21, 18:04    [22283020]     Ответить | Цитировать Сообщить модератору
 Re: Переименовал процедуру и она пропала! Ни создать такую же не дает ни дропнуть!  [new]
ssms
Member

Откуда:
Сообщений: 191
Microsoft SQL Server 2008 R2 (SP3) Standard Edition
18 фев 21, 18:05    [22283021]     Ответить | Цитировать Сообщить модератору
 Re: Переименовал процедуру и она пропала! Ни создать такую же не дает ни дропнуть!  [new]
ssms
Member

Откуда:
Сообщений: 191
При переименовании одной процедуры процедуры, остальные процедуры ведь не меняются, даже если они эту перименованную процедуру внутри вызывали?
18 фев 21, 18:14    [22283026]     Ответить | Цитировать Сообщить модератору
 Re: Переименовал процедуру и она пропала! Ни создать такую же не дает ни дропнуть!  [new]
msLex
Member

Откуда:
Сообщений: 8716
в EXEC sp_rename 'dbo.my_proc', 'dbo.my_proc_tmp';
второй параметр нужно указывать без имени схемы
т.е. в вашем случае

EXEC sp_rename 'dbo.my_proc', 'my_proc_tmp';


Ищите процедуру dbo.[dbo.my_proc_tmp]
18 фев 21, 18:21    [22283030]     Ответить | Цитировать Сообщить модератору
 Re: Переименовал процедуру и она пропала! Ни создать такую же не дает ни дропнуть!  [new]
ssms
Member

Откуда:
Сообщений: 191
msLex
в EXEC sp_rename 'dbo.my_proc', 'dbo.my_proc_tmp';
второй параметр нужно указывать без имени схемы
т.е. в вашем случае

EXEC sp_rename 'dbo.my_proc', 'my_proc_tmp';


Ищите процедуру dbo.[dbo.my_proc_tmp]



Вы совершенно правы!

Большое спасибо!
18 фев 21, 18:26    [22283035]     Ответить | Цитировать Сообщить модератору
 Re: Переименовал процедуру и она пропала! Ни создать такую же не дает ни дропнуть!  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8322
ssms,

у процедуры теперь в названии появилось dbo.
[dbo.my_proc_tmp] - новое название.

А, уже написали :)
18 фев 21, 20:21    [22283086]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить