用c#如何将服务器上所有数据库中的所有表复制到本地的数据库上。

如题所述

--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'Link',
@srvproduct='ms',
@provider=N'SQLNCLI',
@datasrc=N'远程ip地址,端口'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Link',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'用户名',
@rmtpassword='密码'

--查询远程表
select *
from [Link].远程数据库名.dbo.表

--把本地表的数据,复制到远程表
insert into [Link].远程数据库名.dbo.表(列的列表)
select 列
from 本地表
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-03-09
函数体:
string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\A.mdb;";
string comString1 = @"select * into [n] from [D:\B.mdb].[n]";

基本就是这样(默认服务器和架构一致),最好你还写一个判断A数据库原本有没有这个表n,防止重复插入。

下面是判断表有无存在的方法
public static bool tableExist(string tableName)
{
try
{
string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data.mdb;";
OleDbConnection conn = new OleDbConnection(connString);
conn.Open();
DataTable dt = conn.GetSchema("Tables");
conn.Close();
DataRow[] drs = dt.Select(string.Format("TABLE_TYPE='TABLE' and TABLE_NAME='{0}'", tableName));
if (drs.Length > 0)
{
return true;
}
else
{
return false;
}
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return false;
}
}
第2个回答  2016-02-26
不可以直接导出到自己电脑 然后再次倒入吗
相似回答