Di SQL Server, batch adalah sekelompok satu atau lebih pernyataan T-SQL yang dikirim pada saat yang sama dari aplikasi ke SQL Server untuk dieksekusi.
Jika Anda menemukan kesalahan seperti ini:
Msg 111, Level 15, State 1, Line 2
'CREATE VIEW' must be the first statement in a query batch.
Mungkin karena Anda menggabungkan pernyataan dengan pernyataan lain dalam kumpulan yang sama, yang tidak diperbolehkan dalam kumpulan.
Bagian pertama dari pesan kesalahan akan bergantung pada pernyataan aktual yang Anda gunakan dalam kumpulan Anda. Dalam kasus saya ini CREATE VIEW
, tapi bisa juga dengan mudah CREATE PROCEDURE
, CREATE FUNCTION
, dll jika itu adalah pernyataan yang Anda gunakan.
Contoh
Berikut ini contoh beberapa kode yang akan menyebabkan kesalahan ini:
DROP VIEW IF EXISTS vAllCustomers;
CREATE VIEW vAllCustomers AS
SELECT * FROM Customers;
Hasil:
Msg 111, Level 15, State 1, Line 3 'CREATE VIEW' must be the first statement in a query batch.
Dalam kasus saya, saya mencoba menjalankan dua pernyataan; sebuah DROP VIEW
pernyataan dan CREATE VIEW
pernyataan.
Aturan batch T-SQL menyatakan bahwa CREATE VIEW
pernyataan tidak dapat digabungkan dengan pernyataan lain dalam batch yang sama.
Dengan kata lain, CREATE VIEW
dapat menjadi satu-satunya pernyataan dalam kumpulannya.
Cara Memperbaiki Kesalahan
Kami dapat memperbaiki kesalahan di atas hanya dengan menambahkan pemisah batch setelah pernyataan pertama.
Di SQL Server, tombol GO
kata kunci menandakan akhir dari sebuah batch. Lebih khusus lagi, utilitas SQL Server menafsirkan GO
sebagai sinyal bahwa mereka harus mengirim kumpulan pernyataan T-SQL saat ini ke instance SQL Server.
Jadi kita bisa mengubah pernyataan sebelumnya menjadi ini:
DROP VIEW IF EXISTS vAllCustomers;
GO
CREATE VIEW vAllCustomers AS
SELECT * FROM Customers;
GO
Menambahkan GO
memperbaiki masalah dengan memisahkan pernyataan menjadi dua kelompok terpisah.
Perhatikan bahwa GO
sebenarnya bukan bagian dari T-SQL. Ini adalah perintah yang dikenali oleh utilitas SQL Server untuk tujuan memisahkan pernyataan menjadi kumpulan.
Anda mungkin dapat mengubah pemisah batch, tergantung pada alat yang Anda gunakan untuk menyambung ke SQL Server. Misalnya, di SSMS, Anda dapat menemukan opsi ini dengan membuka:Alat> Opsi> Eksekusi Kueri> SQL Server dan cari opsi yang mengatakan sesuatu seperti “Tentukan kata atau karakter yang dapat digunakan untuk memisahkan kumpulan”.