GO を使用して動的 SQL クエリを実行すると、無効な構文によるエラーが発生する可能性があります。そのような問題の 1 つは、クエリ文字列内に "GO" ステートメントが存在することです。
T-SQL では、"GO" はステートメントのバッチの終わりを示すバッチ区切り文字として機能します。ただし、動的クエリを実行する場合、「GO」は有効なステートメントではありません。
この問題を解決するには、動的クエリ文字列から「GO」のすべてのインスタンスを削除します。あるいは、「GO」コマンドを認識する osql や sqlcmd などのツールを使用することもできます。次のようにクエリを変更すると、「'go' 付近の構文が正しくありません」エラーが発生することなくクエリを正常に実行できます。
DECLARE @script VARCHAR(MAX), @script1 VARCHAR(MAX); SET @script = 'create table ali(id decimal(10,0));drop table ali;'; SET @script1 = 'create table ali(id decimal(10,0));drop table ali;'; EXEC (@script); EXEC (@script1);
"GO" は有効な T-SQL ステートメントではないため、使用しないでください。動的 SQL クエリに含めることができます。 「GO」を削除するか、互換性のあるツールを使用すると、動的クエリが適切に実行されます。
以上がGo の動的 SQL クエリで「'go' 付近の構文が正しくありません」エラーを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。