小编And*_*idz的帖子

这将如何使用带有回滚事务的循环来影响数据

While @@Fetch_Status = 0
Begin
    INSERT INTO  [server].MyDatabase.dbo.Mytabletobeinserted (

    UPC,
    Sale_date)  
    VALUES(
    @UPC,
    @Sale_date)

    'Inserting the error trapping here'

    IF (@@ERROR <> 0)
    BEGIN
        ROLLBACK TRANSACTION;
        RETURN;
    END 

    Update t_sale_from_pos
    set been_sent = 'y' 
    where UPC = @UPC and sale_date=@sale_date

    Fetch Next from CursorSale
    into 
    @UPC,
    @Sale_date
end
close CursorSale

deallocate CursorSale
Run Code Online (Sandbox Code Playgroud)

此存储过程每天都使用调度程序运行,并且数据通过网络传递.当此存储过程执行时,然后沿着执行过程突然出现网络超时.这将执行每一行以通过网络发送到其他服务器.


现在,我的问题是:

  • 这将如何影响在循环内调用回滚事务的数据?
  • 它会再次读取所有行并将其发送到服务器进行插入,还是只读取执行期间失败的行?

需要一些建议.谢谢

sql t-sql sql-server stored-procedures rollback

7
推荐指数
1
解决办法
3131
查看次数

无法加载文件或程序集“Microsoft.SqlServer.DTSRuntimeWrap”

我制作了一个 SSIS 包,可以将数据导出到 msaccess。如果我尝试在其解决方案项目上运行该包,它将执行而不会出现错误。但是当我在程序中调用该包时,我会收到错误

无法加载文件或程序集“Microsoft.SqlServer.DTSRuntimeWrap,Version=10.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”。该程序集是为不同的处理器编译的。

这是我的代码:

public void RunPackage()
    {
        textstring("Locating Package...");
        m_worker2.ReportProgress(20);
        string PkgLocation;
        Package pkg;
        Microsoft.SqlServer.Dts.Runtime.Application _app = new Microsoft.SqlServer.Dts.Runtime.Application(); --> I got an exception here.
        DTSExecResult pkgResult;

        PkgLocation = Properties.Settings.Default.PackageLoc + "\"Package1.dtsx";
        textstring("Loading Package...");
        m_worker2.ReportProgress(30);
        pkg = _app.LoadPackage(PkgLocation, null);
        textstring("Executing Package...");
        m_worker2.ReportProgress(30);
        pkgResult = pkg.Execute();
        textstring("Finished...");
        m_worker2.ReportProgress(30);
        textstring(pkgResult.ToString());
        m_worker2.ReportProgress(30);
    }
Run Code Online (Sandbox Code Playgroud)

谁能指出我正确的方法。我不知道这个错误是什么意思。请赐教?

c# ssis

3
推荐指数
1
解决办法
2万
查看次数

如何在c#中将序列号格式化为这种格式"000000000001"

我有两个表名种子和系统.在Seed表中,我的这个列名称是recetid,数据类型是nvarchar,而在系统表中,我有一个LastOR列.在lastOR列中,我想用这个"00000000001"更新LastOR值,种子表将增加到2,依此类推.我怎样才能实现这种格式?

LastOR 0000000001

SeedTable 1

.net c#

-1
推荐指数
1
解决办法
163
查看次数

标签 统计

c# ×2

.net ×1

rollback ×1

sql ×1

sql-server ×1

ssis ×1

stored-procedures ×1

t-sql ×1