作者指令
下面列出了Microsoft SQL Server编写器处理的指令。显示的后缀是由当前的前缀
数据集,服务器,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_BEFORE那COMMIT_AFTER那Rollback_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..
就在关闭数据库上的连接之前,读者查找指令
可以通过使用的字符分隔多个SQL命令fme_sql_delimiter.
指令,嵌入在SQL块的开始。该指令后面的单个字符将用于将SQL块分割成SQL语句,然后将这些SQL语句发送到数据库执行。笔记:在角色之前包含一个空格。
例如:
FME_SQL_DELIMITER;删除从讲师;DELETE FROM people WHERE name ='Doe' AND name ='John'
不允许使用多个分隔符,并且在发送到数据库之前将删除分隔符字符。
在执行这些SQL语句期间发生的任何错误通常会终止读取器或写入器(取决于SQL语句的执行情况而错误。如果指定的语句先于连字符(“ - ”),则忽略此类错误。
必填/可选
可选的
工作台参数
结束SQL.