SQL Server同步数据库表数据流程

流程图

flowchart TD
    A[连接源数据库] --> B[连接目标数据库]
    B --> C[选择需要同步的表]
    C --> D[获取源表数据]
    D --> E[插入或更新目标表数据]
    E --> F[关闭数据库连接]

详细步骤及代码示例

  1. 连接源数据库和目标数据库
// 连接源数据库
SqlConnection sourceConn = new SqlConnection("源数据库连接字符串");
sourceConn.Open();

// 连接目标数据库
SqlConnection targetConn = new SqlConnection("目标数据库连接字符串");
targetConn.Open();
  1. 选择需要同步的表
-- 选择需要同步的表
SELECT name FROM sys.tables WHERE type = 'U';
  1. 获取源表数据
// 获取源表数据
SqlCommand sourceCmd = new SqlCommand("SELECT * FROM 源表", sourceConn);
SqlDataReader reader = sourceCmd.ExecuteReader();
  1. 插入或更新目标表数据
while (reader.Read())
{
    // 检查目标表是否已存在该记录
    SqlCommand checkCmd = new SqlCommand("SELECT COUNT(*) FROM 目标表 WHERE 主键 = @主键", targetConn);
    checkCmd.Parameters.AddWithValue("@主键", reader["主键"]);
    int count = (int)checkCmd.ExecuteScalar();

    if (count > 0)
    {
        // 更新目标表记录
        SqlCommand updateCmd = new SqlCommand("UPDATE 目标表 SET 列1 = @列1, 列2 = @列2 WHERE 主键 = @主键", targetConn);
        updateCmd.Parameters.AddWithValue("@列1", reader["列1"]);
        updateCmd.Parameters.AddWithValue("@列2", reader["列2"]);
        updateCmd.Parameters.AddWithValue("@主键", reader["主键"]);
        updateCmd.ExecuteNonQuery();
    }
    else
    {
        // 插入目标表记录
        SqlCommand insertCmd = new SqlCommand("INSERT INTO 目标表 (主键, 列1, 列2) VALUES (@主键, @列1, @列2)", targetConn);
        insertCmd.Parameters.AddWithValue("@主键", reader["主键"]);
        insertCmd.Parameters.AddWithValue("@列1", reader["列1"]);
        insertCmd.Parameters.AddWithValue("@列2", reader["列2"]);
        insertCmd.ExecuteNonQuery();
    }
}
  1. 关闭数据库连接
// 关闭数据库连接
sourceConn.Close();
targetConn.Close();

状态图

stateDiagram
    [*] --> 连接数据库
    连接数据库 --> 选择表
    选择表 --> 获取数据
    获取数据 --> 插入或更新数据
    插入或更新数据 --> 关闭连接
    关闭连接 --> [*]

以上是SQL Server同步数据库表数据的流程,通过这个流程,你可以将源数据库表的数据同步到目标数据库表中,并根据需要进行插入或更新操作。记得在代码中替换对应的数据库连接字符串、表名和列名。希望对你有所帮助!