【问题标题】:How do I pull data from my old server to my SQL server?如何将数据从旧服务器提取到 SQL 服务器?
【发布时间】:2009-02-20 20:33:22
【问题描述】:

我想编写一个将数据从服务器上传输到我的 SQL Server 的代码。在我放入数据之前,我想删除当前数据。然后将数据从一个到另一个。我怎么做。这是我目前的代码中的 sn-ps。

string SQL = ConfigurationManager.ConnectionStrings["SQLServer"].ToString();
string OLD = ConfigurationManager.ConnectionStrings["Server"].ToString();

SqlConnection SQLconn = new SqlConnection(SQL);
string SQLstatement = "DELETE * FROM Data";
SqlCommand SQLcomm = new SqlCommand(SQLstatement, SQLconn);
SQLconn.Open();

OdbcConnection conn = new OdbcConnection(OLD);
string statement = "SELECT * FROM BILL.TRANSACTIONS ";
statement += "WHERE (TRANSACTION='NEW') ";            
OdbcCommand comm = new OdbcCommand(statement, conn);
comm.CommandTimeout = 0;
conn.Open();


SqlDataReader myDataReader = SQLcomm.ExecuteReader();
while (myDataReader.Read())
{
    //...            
}
SQLconn.Close();
SQLconn.Dispose();

【问题讨论】:

  • 只是好奇。你为什么在 c# 中这样做?这是一个持续的事情吗?一次??
  • 正在进行中,这就是我每个月都会删除数据的原因。我有一些代码 sn-ps,除了,我不知道如何从一个数据库复制并放入 SQL Server

标签: c# .net asp.net sql sql-server


【解决方案1】:

根据您使用的 SQL Server 版本,这里的标准解决方案是使用 DTS(2000 及更早版本)或 SSIS(2005 及更高版本)。如果需要,您可以将其转换为可执行文件,直接从 SQL Server 安排它,或手动运行它。这两个工具都相当健壮(尽管 SSIS 更强大),具有清除现有数据、发生错误时回滚、必要时转换数据、写出异常等方法。

【讨论】:

  • +1 ETL 同时被过度使用和未充分使用,但这是一个很好的候选者。
【解决方案2】:

如果可能的话,我会尝试在 SQL Server 中完成这一切。您可以创建一个链接服务器到您的其他数据库服务器。然后简单地使用 T-SQL 复制数据 - 它看起来像......

INSERT INTO new_server_table (field1, field2)
SELECT x, y
FROM mylinkedserver.myolddatabase.myoldtable 

如果您需要定期执行此操作或首先清除数据,您可以使用 SQL 代理将其作为计划任务的一部分执行。

【讨论】:

  • 如果走这条路,而且表很大,一定要绕过事务,否则会很慢。批量插入移动整个​​表的速度要快得多。
【解决方案3】:

如果你只需要导入一次数据,而且你有很多数据,为什么不使用“BULK INSERT”命令呢? Link

【讨论】:

    【解决方案4】:

    T-SQl 允许您从select 查询中插入数据。它看起来像这样:

    insert into Foo
    select * from Bar;
    

    只要字段类型对齐,这将起作用 - 否则您将不得不调整来自 Bar 的数据以适应来自 Foo 的字段。

    【讨论】:

      【解决方案5】:

      当您需要执行此操作一次时,请查看数据库发布向导(只需 google)并生成一个可以完成所有操作的脚本。

      【讨论】:

        猜你喜欢
        • 2014-08-03
        • 2018-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多