假设我有一个名为MessageLog
的表:
MessageLog
==========
MessageLogID int (Identity)
Message text
我在不同域中的不同计算机上的不同数据库中设置了相同的表:
Domain Machine SQLServername Database Table
=============================================================================
Production ProdSql1 AppDB MessageLog
Dev DevSql Sql2k5 AppDB MessageLog
我可以在Dev
域内看到Production
域名,但我无法在Production
域内看到Dev
域名。这意味着我将不得不在Production
域中工作。
如何撰写从MessageLog
中选择Production
条记录的查询并将其插入Dev
?
在伪SQL中,我想像这样:
Select Message From AppDb.dbo.MessageLog
Into Dev.DevSql\Sql2k5.AppDb.dbo.MessageLog
答案 0 :(得分:1)
您希望在Production实例上设置Linked Server instance,该实例使用开发实例上的帐户指向开发实例,并在相应的表上使用INSERT权限。防火墙/网络访问提供...
使用四个名称表示法引用链接服务器实例上的表:
INSERT INTO development.appdb.dbo.messagelog
SELECT message
FROM appdb.dbo.messagelog
TSQL / SQL Server中的SELECT ... INTO ...
语法要求该表尚不存在。
答案 1 :(得分:0)
只要您拥有正确的网络和防火墙设置,您就可以在生产中创建指向开发的链接服务器并运行您用作示例的查询
http://msdn.microsoft.com/en-us/library/ff772782.aspx
从生产环境中看到开发环境看起来并不是一个好主意,因为有可能在生产中显示开发数据。
将MessageLog表转储到文件的作业,将其复制到DEV可以访问的位置,然后将其加载到开发服务器上,该怎么办?