IT翻訳者の疑問

この業界に入って約20年。私の疑問は相変わらず解決しません。

「〜により」+否定

コンパイル エラーが起きると、データベースエンジン の実行プランが構築できず、バッチ内のどの処理も実行されません。エラーを生成したステートメントよりも前にあるすべてのステートメントロールバックされたように見えますが、エラーによりバッチ内のどのステートメントも実行されませんでした。次の例では、3 番目のバッチ内のどの INSERT ステートメントも、コンパイル エラーにより実行されません。
出典:http://technet.microsoft.com/ja-jp/library/ms187878.aspx

「エラーにより」と「コンパイル エラーにより」は「実行される」の動作主ではなく、「実行されません」の理由だと思います。「コンパイルエラーによって実行されます」を否定しているわけではないんですよね。「エラーのため、どのステートメントも実行されません」などとしたほうが、理由であることがはっきりすると思います。
ちなみに、英語では

A compile error prevents the Database Engine from building an execution plan, so nothing in the batch is executed. Although it appears that all of the statements before the one generating the error were rolled back, the error prevented anything in the batch from being executed. In this example, none of the INSERT statements in the third batch are executed because of a compile error.
出典:http://technet.microsoft.com/en-us/library/ms187878.aspx

となっています。ところで、「次の例では、3 番目のバッチ内のどの INSERT ステートメントも、コンパイル エラーにより実行されません。」という文章からは、例の中のINSERTステートメントが全部エラーなのかと思いますが、実際にはSyntax errorがあるのは3番目のINSERTだけです。最初のと2番目のINSERTステートメントはエラーではないにもかかわらず、3番目のINSERTのシンタックスエラーの巻き添えをくったということですね。だったら、「次の例では、コンパイル エラーのため、3 番目のバッチ内の INSERT ステートメントはどれも実行されません」などと変える必要があります。
「〜により」を使うと何となく文章がすっきりまとまったような気分になりますが、意味が正しく伝わっているかどうかを、訳文だけ読んで確認したほうがよいと思います。