Как говорится в названии, я хочу скопировать все записи текущих дней из нашей производственной базы данных в нашу базу данных разработки. У меня есть доступ к производственной базе данных и правам db_owner для базы данных разработки. Я пишу хранимую процедуру, которая ищет данные текущих дней, поэтому мне нужно обновить данные разработки с данными текущих дней с нашего производственного сервера. Вот что я придумал до сих пор:Копирование записей с текущего дня между таблицами в разных базах данных
use DatabaseProd
DECLARE @i_DateCurrent DATETIME;
SET @i_DateCurrent = CONVERT(DATETIME,CONVERT(DATE,GETDATE()));
insert into DatabaseDev..dbo.Table_1
select * from dbo.TableProd
where date_received >= @i_DateCurrent
AND date_received < DATEADD(DAY,1,@i_DateCurrent)
Я получаю следующее сообщение об ошибке:
Msg 7202, Level 11, State 2, Line 4 Could not find server 'ServerDev' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
Когда я проверяю таблицу sys.servers, есть только одна строка, и это только сервер Production.
Я попытался с помощью sp_addlinkedserver, но это дает мне
Msg 15247, Level 16, State 1, Procedure sp_MSaddserver_internal, Line 29 User does not have permission to perform this action.
Итак, мой вопрос: Есть ли другой способ сделать это, что не требует дополнительных разрешений на сервере? Я бы предпочел инструкцию T-SQL, потому что я буду делать это некоторое время, но если есть другой способ, я тоже могу это сделать. Базы данных, которые я использую, являются MS SQL Server 2008 R2.
У вас есть две точки: DatabaseDev..dbo.Table_1, если DatabaseDev не связан с сервером. Попробуйте: DatabaseDev.dbo.Table_1 – steryd
Кажется, вы получили эти две базы данных на отдельных серверах (или экземплярах). В этом случае для доступа к базам данных на одном сервере от другого вам необходимо настроить Linked Server на одном из этих двух. MSDN - https://msdn.microsoft.com/en-us/library/ff772782.aspx – GSazheniuk
Да, это похоже на связанный сервер, но если вы используете учетные данные Windows и доверенное соединение, вам также может понадобиться беспокоиться о делегировании кебероса который, возможно, не будет дорогой, по которой вы хотите спуститься, в зависимости от вашей среды. вы используете SSIS? Довольно быстрый пакет может быть создан для того, чтобы делать то, что вы хотите, и для этого не потребуется 2 сервера, но SSIS сделает это за вас. – Matt