从不同数据库的表之间复制当前日期的记录

时间:2016-09-19 18:29:10

标签: sql sql-server tsql sql-server-2008-r2

正如标题所说,我想将生产数据库中的所有当前日期记录复制到我们的开发数据库中。我可以查看生产数据库和开发数据库的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   无法在sys.servers中找到服务器'ServerDev'。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver以将服务器添加到sys.servers。

当我检查sys.servers表时,只有一行,它只是生产服务器。

我尝试使用sp_addlinkedserver,但它给了我

  

消息15247,级别16,状态1,过程sp_MSaddserver_internal,第29行   用户无权执行此操作。

所以,我的问题是:有没有其他方法可以在生产服务器上不需要更多权限?我更喜欢T-SQL语句,因为我会这样做一段时间,但如果有另一种方式,我也可以这样做。我正在使用的数据库都是MS SQL server 2008 R2。

2 个答案:

答案 0 :(得分:0)

评论太长了。

一个开发服务器,创建一个到生产服务器的链接服务器。这应该为您提供对您需要访问的所有内容的读取权限。

然后,在开发服务器上完成工作。毕竟,这是运行脚本比在生产服务器上运行更安全的地方。

答案 1 :(得分:0)

除了显而易见的SSIS之外,我可能会建议您使用OPENROWSET,因为您似乎对两者都有持续性。 MSDN OpenRowset