Melaksanakan pertanyaan dinamik dengan pernyataan GO dalam SQL boleh membawa kepada ralat, kerana GO bukanlah perintah SQL yang diiktiraf. Untuk menyelesaikan isu ini, adalah penting untuk mengalih keluar semua kejadian GO daripada rentetan SQL dinamik sebelum melaksanakannya.
Contoh:
Pertimbangkan kod berikut yang cuba melaksanakan pertanyaan dinamik:
DECLARE @script VARCHAR(MAX); SET @script = ' create table ali(id decimal(10,0)); drop table ali; go create table ali(id decimal(10,0)); drop table ali; ' EXEC (@script);
Apabila dilaksanakan, pertanyaan ini akan menghasilkan perkara berikut ralat:
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near 'go'.
Untuk menyelesaikan ralat ini, alih keluar semua kejadian GO daripada rentetan SQL dinamik:
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);
Kod yang diubah suai ini akan berjaya melaksanakan kedua-dua pertanyaan tanpa menemui "Sintaks salah hampir ralat 'pergi'.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat 'Sintaks yang salah berhampiran 'go'' Semasa Melaksanakan Pertanyaan SQL Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!