从一台服务器中选择表格后如何插入另一台服务器?

时间:2011-09-17 08:56:49

标签: sql-server

我有两台服务器,我需要将特定用户的所有详细信息从一台服务器转移到另一台服务器。

我从一个服务器中选择了行,现在我必须插入到表的另一个服务器中。

我选择了行,然后将其返回到数据表中。

select * 
from [mp_Sites] 
where SiteID = "+siteid+"

我调用了存储在server2中的存储过程,用于插入从server1中选择的表。

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("@1", SqlDbType.Int).Value = moduleId;
cmd.Parameters.Add("@2", SqlDbType.VarChar).Value = dtEventsXmls.Rows[i]["SettingName"].ToString();
cmd.Parameters.Add("@3", SqlDbType.VarChar).Value = dtEventsXmls.Rows[i]["SettingValue"].ToString();
cmd.Parameters.Add("@4", SqlDbType.VarChar).Value = dtEventsXmls.Rows[i]["ControlType"].ToString();
cmd.Parameters.Add("@5", SqlDbType.NText).Value = dtEventsXmls.Rows[i] ["RegexValidationExpression"].ToString();

我觉得它很复杂。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:2)

您需要在SQl服务器中定义链接服务器。 例如,您可以插入到链接数据库的LN。 LN.dbo.table。在商店程序中,您可以插入链接表

答案 1 :(得分:0)

使用完全限定名称,例如

        INSERT INTO  SERVER1.DATABASE1.dbo.TABLE1  values(SELECT * FROM SERVER2.DATABASE2.dbo.TABLE2)
  
,确保没有。列和dataType应该与这两个表相同,列值的顺序应该相同。