Cabaran:
Melaksanakan pertanyaan SQL dinamik dengan pernyataan GO mencetuskan ralat "Msg 102, Tahap 15, State 1, Baris 4 Sintaks salah berhampiran 'go'".
Analisis:
GO bukanlah pernyataan Transact-SQL yang sah tetapi sebaliknya perintah yang diiktiraf oleh sqlcmd, osql , dan Kod Studio Pengurusan Pelayan SQL Editor.
Penyelesaian:
Untuk menyelesaikan ralat ini, anda mesti mengalih keluar semua tika GO daripada SQL dinamik anda. Menjalankan pertanyaan dengan GO dialih keluar seharusnya menyelesaikan ralat sintaks.
Sampel Kod:
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);
Nota:
Kod contoh yang diberikan dalam soalan adalah untuk tujuan ilustrasi sahaja. SQL dinamik yang anda laksanakan mungkin mengandungi pertanyaan yang berbeza tetapi penyelesaiannya tetap sama: alih keluar tika GO.
Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Dinamik Saya Menyebabkan Ralat 'Sintaks yang salah berhampiran 'pergi'' dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!