You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中Sheet表数据迁移至Lead表的通用脚本编写方法

SQL Server 数据迁移脚本(Sheet → Lead)

需求说明

将Sheet表数据迁移至Lead表,需满足:

  • Sheet表的首个记录(按Sheet表ID升序排序)迁移后,成为Lead表的最后一条记录(ID值最大)
  • Lead表的ID为自增列,插入时自动生成新ID

实现脚本

BEGIN TRANSACTION;

BEGIN TRY
    -- 声明变量存储Sheet表首个记录的ID
    DECLARE @FirstSheetId INT; -- 根据实际ID类型调整,如BIGINT、UNIQUEIDENTIFIER
    SELECT TOP 1 @FirstSheetId = Id FROM Sheet ORDER BY Id ASC; -- 若"首个记录"不是按ID排序,修改ORDER BY规则,比如按创建时间

    -- 先插入Sheet表中除首个记录外的所有数据
    INSERT INTO Lead (Col1, Col2, Col3) -- 替换为Lead表中ID外的实际列名
    SELECT Col1, Col2, Col3 -- 替换为Sheet表对应列名,需与Lead表列顺序、类型匹配
    FROM Sheet
    WHERE Id != @FirstSheetId;

    -- 最后插入Sheet表的首个记录,此时Lead自增ID会自动生成本次迁移的最大值
    INSERT INTO Lead (Col1, Col2, Col3)
    SELECT Col1, Col2, Col3
    FROM Sheet
    WHERE Id = @FirstSheetId;

    COMMIT TRANSACTION;
    PRINT '数据迁移完成,Sheet首个记录已成为Lead表最后一条记录';
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION;
    PRINT '迁移失败,错误信息:' + ERROR_MESSAGE();
END CATCH

注意事项

  • 需根据实际表结构,替换脚本中的Col1, Col2, Col3为两张表中除ID外的真实列名,保证列顺序、数据类型完全匹配
  • 若Sheet表的“首个记录”定义不是按ID升序,修改ORDER BY Id ASC为实际规则(如ORDER BY CreateTime ASC)
  • 迁移前建议备份两张表的数据,避免意外数据丢失
  • 若Lead表已有存量数据,脚本会在现有数据后追加迁移内容,Sheet首个记录仍为本次迁移数据中的最后一条

内容的提问来源于stack exchange,提问作者Iiam Liamm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:52:14