Saya mencoba menjalankan kueri yang cukup sederhana berikut ini di SQL Server Management Studio:
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
left join
master.sys.parameters as params on procs.object_id = params.object_id
Ini tampaknya benar-benar benar, tetapi saya terus mendapatkan kesalahan berikut:
Msg 102, Level 15, Status 1, Baris 6 Sintaks yang salah di dekat ''.
Ini berfungsi jika saya menghilangkan join dan hanya melakukan select sederhana:
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
Tapi saya perlu join untuk bekerja. Saya bahkan tidak memiliki ** string ' ' dalam kueri ini, jadi saya tidak tahu apa yang tidak disukai.
Masalah yang tidak terduga seperti itu dapat muncul ketika Anda menyalin kode dari halaman web atau email dan teks berisi karakter yang tidak dapat dicetak seperti CR atau LF individual dan spasi yang tidak dapat di-breaking.
Panagiotis Kanavos benar, terkadang copy paste T-SQL dapat memunculkan karakter yang tidak diinginkan...
Akhirnya saya menemukan cara yang sederhana dan cepat (hanya diperlukan Notepad++) untuk mendeteksi karakter mana yang salah, tanpa harus menulis ulang seluruh pernyataan secara manual: tidak perlu menyimpan file apapun ke disk.
Ini cukup cepat, di Notepad++:
Anda akan dengan mudah menemukan karakter yang salah
Kesalahan bagi saya adalah bahwa saya membaca pernyataan SQL dari file teks, dan file teks disimpan dalam format UTF-8 dengan BOM (byte order mark).
Untuk mengatasinya, saya membuka file di Notepad++ dan di bawah Encoding, pilih UTF-8. Atau, Anda dapat menghapus tiga byte pertama file dengan hex editor.