作者指令

下面列出了Microsoft SQL Server编写器处理的指令。显示的后缀是由当前的前缀在映射文件中。默认情况下,对于Microsoft SQL Server Writer是MSSQL_ADO

数据集,服务器,user_name,密码,use_sspi, encrypt_connection, command_timeout

这些指令的操作方式与Microsoft SQL Server Reader相同。其他特定于写入器的指令将在下面的部分中讨论。

START_TRANSACTION

必填/可选:可选的

此语句告诉Microsoft SQL Server Writer模块何时开始将功能写入数据库时​​。在达到属于的功能之前,Microsoft SQL Server Writer不会编写任何功能<最后成功的交易> + 1.指定值为0会导致输出每个特性。通常,指定的值为零—非零值仅在数据加载操作在中途失败后恢复时才指定。

范围

内容

去年成功的事务> <

最后一次成功交易的交易编号。第一次加载数据时,将此值设置为0.

默认:0.

例子:

mssql_ado_start_transaction 0.

工作台参数:开始交易

transaction_interval.

必填/可选:可选的

此语句通知FME在事务提交到数据库之前将要放置在每个事务中的功能数量。

如果是mssql_ado_transaction_interval.未指定语句,然后将500的值用作事务间隔。

范围

内容

单个事务中的功能数量。

默认:500

如果是mssql_ado_transaction_interval.设置为零,然后使用基于功能的事务。由于作者处理了每个功能,因此检查了调用的属性fme_db_transaction..该属性的值指定写入者应该提交还是回滚当前事务。属性的值可以是COMMIT_BEFORECOMMIT_AFTERRollback_Awter.忽略.如果是fme_db_transaction.属性未在任何特性中设置,则整个写操作发生在单个事务中。如果是fme_db_transaction.属性未在任何特性中设置,则整个写操作发生在单个事务中。

具体来说,价值fme_db_transaction.可以是之一:

  • commit_before:在将要素添加到新事务之前,将提交当前事务。
  • COMMIT_AFTER:将该特性添加到当前事务中,然后提交事务。
  • Rollback_After:将功能添加到当前事务,然后回滚事务。也就是说,将提交当前事务中的任何功能。
  • 忽略:该功能被添加到当前事务。

在该功能上找不到属性时,则值忽略假定。

例子:

mssql_ado_transaction_interval 5000.

工作台参数:每个事务特性

Bulk_insert.

必填/可选

可选的

bulk_insert选项通过要批处理的功能将插入模式从功能进行更改。这可能导致插入速度六到十倍的任何位置。妥协在错误中减少了粒度,其中一个无效功能可能导致完整事务的失败。

笔记:批量插入速度将随交易大小(减少交易=更快的插入)增加。更大的交易大小也意味着如果事务发生故障,则会有更多的行来重新插入。

在Azure中,Bulk_insert非常重要,因为插入速度增加约为300x。但是,对于批量模式使用Azure,必须更改server_name和user_name参数。

server_name = tcp:servername.database.windows.net

user_name = username @ servername

剩下的参数可以保持不变。

如果是Bulk_insert.语句,则给出NO值。Bulk_insert.可以设置为是或否。

工作台参数

散装刀片

begin_sql {n}

有时,您必须在打开表之前执行一些SQL语句。例如,在尝试读取视图之前,可能需要确保视图存在。

打开与数据库读取的连接后,读者查找该指令< ReaderKeyword > _BEGIN_SQL {n}(为了N=0,1,2,...),并在数据库连接上以SQL语句的形式执行每个这样的指令的值。

可以通过使用的字符分隔多个SQL命令fme_sql_delimiter.指令,嵌入在SQL块的开始。该指令后面的单个字符将用于将SQL块分割成SQL语句,然后将这些SQL语句发送到数据库执行。笔记:在角色之前包含一个空格。

例如:

FME_SQL_DELIMITER;删除从讲师;DELETE FROM people WHERE name ='Doe' AND name ='John'

不允许使用多个分隔符,并且在发送到数据库之前将删除分隔符字符。

在执行这些SQL语句期间发生的任何错误通常会终止读取器或写入器(取决于SQL语句的执行情况而错误。如果指定的语句先于连字符(“ - ”),则忽略此类错误。

必填/可选

可选的

工作台参数

开始SQL

end_sql {n}

有时,您必须在读取一组表格后执行一些SQL语句。例如,可能需要在创建它后清理临时视图begin_sql.

就在关闭数据库上的连接之前,读者查找指令 _end_sql {n}(为了N=0,1,2,...),并在数据库连接上以SQL语句的形式执行每个这样的指令的值。

可以通过使用的字符分隔多个SQL命令fme_sql_delimiter.指令,嵌入在SQL块的开始。该指令后面的单个字符将用于将SQL块分割成SQL语句,然后将这些SQL语句发送到数据库执行。笔记:在角色之前包含一个空格。

例如:

FME_SQL_DELIMITER;删除从讲师;DELETE FROM people WHERE name ='Doe' AND name ='John'

不允许使用多个分隔符,并且在发送到数据库之前将删除分隔符字符。

在执行这些SQL语句期间发生的任何错误通常会终止读取器或写入器(取决于SQL语句的执行情况而错误。如果指定的语句先于连字符(“ - ”),则忽略此类错误。

必填/可选

可选的

工作台参数

结束SQL.