SQL Server Management Studio selalu menyisipkan perintah GO ketika saya membuat kueri menggunakan menu klik kanan "Script As". Mengapa? Apa yang sebenarnya GO lakukan?
SQL Server Management Studio selalu menyisipkan perintah GO ketika saya membuat kueri menggunakan menu klik kanan "Script As". Mengapa? Apa yang sebenarnya GO lakukan?
Jawaban:
Ini adalah terminator batch, namun Anda dapat mengubahnya ke apa pun yang Anda inginkan
Perintah GO bukan pernyataan Transact-SQL, tetapi perintah khusus yang dikenali oleh beberapa utilitas MS termasuk editor kode SQL Server Management Studio.
Perintah GO digunakan untuk mengelompokkan perintah SQL ke dalam batch yang dikirim ke server bersama-sama. Perintah yang termasuk dalam kumpulan, yaitu, set perintah sejak perintah GO terakhir atau awal sesi, harus konsisten secara logis. Misalnya, Anda tidak bisa mendefinisikan variabel dalam satu batch dan kemudian menggunakannya dalam yang lain karena ruang lingkup variabel terbatas pada batch yang didefinisikan.
Untuk informasi lebih lanjut, lihat http://msdn.microsoft.com/en-us/library/ms188037.aspx .
GO
benar - benar berguna?
GO bukan kata kunci SQL.
Ini adalah pemisah batch yang digunakan oleh alat klien (seperti SSMS) untuk memecah seluruh skrip menjadi batch
Dijawab sebelum beberapa kali ... contoh 1
Hanya untuk menambah jawaban yang ada, ketika Anda membuat tampilan Anda harus memisahkan perintah-perintah ini menjadi batch menggunakan go
, jika tidak, Anda akan mendapatkan kesalahan 'CREATE VIEW' must be the only statement in the batch
. Jadi, misalnya, Anda tidak akan dapat menjalankan skrip sql berikut tanpago
create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go
select * from MyView1
select * from MyView2
Go berarti, pernyataan SQL apa pun yang ditulis sebelum dan setelah GO sebelumnya, akan masuk ke server SQL untuk diproses.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
Dalam contoh di atas, pernyataan sebelum GO 1 akan pergi ke sql sever dalam sebuah batch dan kemudian pernyataan lain sebelum GO 2 akan pergi ke sql server di batch lain. Jadi seperti yang kita lihat, batch telah dipisahkan.
Inilah keajaiban GO.
SELECT 'Go'
Go 10
SYNTAX: Go INT(BatchNumber)
BatchNumber: Tidak ada waktu terjadi
Terlihat sederhana, Ini mungkin mengarahkan Anda ke Spaghetti jika Anda kode lebih dalam.