Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Transactions Talend tmssqlrow似乎未执行事务_Transactions_Commit_Talend - Fatal编程技术网

Transactions Talend tmssqlrow似乎未执行事务

Transactions Talend tmssqlrow似乎未执行事务,transactions,commit,talend,Transactions,Commit,Talend,我在泰伦德面临工作问题。 我使用tmssqlrow删除一些表中的大量数据+/-2500000行。由于我有一些条件,我不能使用截断 数据库设置了选项“恢复模式简单”。尽管如此,事务日志文件的增加仍然占用了磁盘上的所有可用空间 以下是代码使用: DECLARE @RowCount int = 1, @nbocc int = 0 WHILE @Rowcount > 0 BEGIN BEGIN TRANSACTION delete TOP (100000) from larg

我在泰伦德面临工作问题。 我使用tmssqlrow删除一些表中的大量数据+/-2500000行。由于我有一些条件,我不能使用截断

数据库设置了选项“恢复模式简单”。尽管如此,事务日志文件的增加仍然占用了磁盘上的所有可用空间

以下是代码使用:

DECLARE @RowCount int = 1, @nbocc int = 0 
WHILE @Rowcount > 0 
BEGIN 
   BEGIN TRANSACTION 

   delete TOP (100000) from large_table

   SET @Rowcount = @@ROWCOUNT;
   COMMIT TRANSACTION
   CHECKPOINT

   SET @nbocc = @nbocc + 1 
   IF @nbocc = 15 
   BEGIN    
      DBCC SHRINKFILE (N'logfile' , 0)
      WITH NO_INFOMSGS 

      SET @nbocc = 0 
   END
END

SET ROWCOUNT 0
如果在ManagementStudio中运行此脚本,它工作正常,因此ldf文件将每15次收缩一次。但与Talend一起使用时,ldf文件不断增长

我怎样才能解决这个问题?
我尝试放置tOpenconnection,然后是tmssqlrow,然后是tmssqlcommit和tcloseconnection,但面临相同的问题。

从我看到的情况来看,tmssqlrow在sql脚本中的行为并不总是如预期的那样。您应该将脚本封装在存储过程中,然后从tMSSqlRow EXEC MyStoredProcess..或tMSSqlSP组件调用存储过程。

谢谢您的反馈。问题是我的Talend作业运行了大量SQL语句,这些语句来自很多SQL server。因此,为每个大表创建一个SP应该非常浪费时间:感谢您提供有关tmssql行为的信息。如果没有其他可能性,我将创建SP。当做