Показать ошибку.... Как скопировать процедуру хранения одну на другую базу данных тот же сервер
Как скопировать процедуру хранения из одной базы данных в другую на том же сервере
Я работаю над проектом. Я хочу скопировать всю или единственную процедуру хранения из старого финансового года db_17_18 к новому финансовому году db_18_19 Я хочу сделать это с помощью команды sql server. я пытаюсь это сделать, но показываю ошибку, пожалуйста, помогите мне....
я использовал :
SQL_Server 2008 r2
название сервера : shop04
Что я уже пробовал:
попробуйте 1
select * into DB_18_19.dbo.P_Add_FY_Data.procedures from DB_17_18.P_Add_FY_Data.procedures WHERE type_desc='SQL_STORED_PROCEDURE'
Error1 :
Msg 117, Уровень 15, Состояние 1, Строка 1
Имя объекта "DB_18_19.dbo.P_Add_FY_Data.procedures" содержит больше максимального количества префиксов. Максимум-2.
попробуйте 2
select * into DB_18_19.dbo.P_Add_FY_Data.procedures from DB_2017_2018.P_Add_FY_Data.procedures
Error2 :
Msg 117, Уровень 15, Состояние 1, Строка 1
Имя объекта "DB_18_19.dbo.P_Add_FY_Data.procedures" содержит больше максимального количества префиксов. Максимум-2.
попробуйте 3
select * into DB_18_2019.dbo.P_Add_FY_Data from DB_17_18.P_Add_FY_Data
Error3 :
Msg 208, Уровень 16, Состояние 1, Строка 1
Недопустимое имя объекта 'DB_2017_2018.P_Add_FY_Data'.
попробуйте 4
select * into DB_18_19.dbo.P_Add_FY_Data from DB_17_18.P_Add_FY_Data WHERE type_desc='SQL_STORED_PROCEDURE'
Error4 :
Msg 208, Уровень 16, Состояние 1, Строка 1
Недопустимое имя объекта 'DB_17_2018.P_Add_FY_Data'.
RedDk
Я думаю, что лучшая идея, или то, что я обычно делаю, когда копирую stoproc из одной базы данных в другую,-это щелкнуть правой кнопкой мыши целевую процедуру и выбрать "Изменить". Затем процедура откроется в редакторе, и я могу изменить слово "ALTER" на "CREATE" ... а затем сохранить его как скрипт .sql. Запустите его в целевой базе данных (той, что без нее).
Обычно есть несколько других вещей, которые также могут быть добавлены в целевую базу данных, возможно, схема и любая ссылка, которая была в исходной базе данных.
Jayanta Modak
Спасибо сэр за ответ
На самом деле я использовал эту команду sql в vb.net 2010 год. когда пользователь нажимает на кнопку Создать новую БД, нажав на кнопку, после этого автоматически копируются все таблицы и баланс книги запасов, а также процедура и функция хранения. когда я копирую процедуру хранения, то сталкиваюсь с проблемой.
я думаю, что лучшая идея, или то, что я обычно делаю, когда копирую stoproc из одной базы данных в другую,-это щелкнуть правой кнопкой мыши целевую процедуру и выбрать "Изменить". Затем процедура откроется в редакторе, и я могу изменить слово "ALTER" на "CREATE" ... а затем сохранить его как скрипт .sql. Запустите его в целевой базе данных (той, что без нее)." но пользователь не может
пожалуйста, помогите мне, сэр.
RedDk
Хорошо. Итак, я думаю, вы хотите сказать, что у пользователя нет разрешения на изменение хранимой процедуры? Тогда мой вопрос => "зачем пользователю нужно изменять хранимую процедуру?" Если вы говорите, что пользователь не может запустить stoproc, я бы сказал, что нет смысла копировать все stoproc в целевую базу данных.
[РЕДАКТИРОВАТЬ]
Может быть, я что-то неправильно понял. Попробуй... Выберите * из sys.procedures ... и посмотрите, появится ли требуемое имя процедуры в списке результатов. В нынешнем виде это предложение кажется подозрительным.
[КОНЕЦ РЕДАКТИРОВАНИЯ]
Jayanta Modak
Я хочу менять базу данных каждый финансовый год.
Если я изменю базу данных и скопирую только всю таблицу, то как запустить процедуру хранения? Потому что хранимая процедура хранится в базе данных. Пользователь не имеет права изменять какую-либо часть программы проекта и не имеет доступа к базе данных.
Имя хранимой процедуры является правильным и хранится в базе данных "db_17_18
RedDk
Хорошо. Я только что рассказал вам, как скопировать хранимую процедуру из одной базы данных в другую. На ваш вопрос есть ответ. Извини, но я не могу помочь тебе с этим новым материалом.
ZurdoDev
Вы понимаете эту ошибку? - содержит больше, чем максимальное число префиксов. Максимум-2."
Jayanta Modak
Да сэр тогда я воспользовался этим
выберите * в DB_18_19.dbo.P_Add_FY_Data из DB_17_18.dbo.P_Add_FY_Data
ZurdoDev
Тогда нет, вы этого не понимаете. Как вы думаете, что означает DB_18_19.dbo.P_Add_FY_Data из DB_17_18.dbo.P_Add_FY_Data?
Это должно быть databasename.schema.tableorview. У тебя слишком много периодов.
Jayanta Modak
о! Извините, сэр . пожалуйста, простите меня, я плохо знаю английский. извиняюсь.
Я скопировал все свои таблицы в этом процессе. Итак, я думаю, что процесс копирования хранимых процедур такой же.
Пожалуйста, помогите мне, сэр.... как скопировать хранимую процедуру