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
tsql
ssms
tvanfosson
sumber
sumber
Jawaban:
Ini adalah terminator batch, namun Anda dapat mengubahnya ke apa pun yang Anda inginkan
sumber
Sejak Management Studio 2005 tampaknya Anda dapat menggunakan
GO
denganint
parameter, seperti:Di atas akan memasukkan 10 baris ke dalam
mytable
. Secara umum,GO
akan mengeksekusi perintah sql terkaitn
kali .sumber
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 .
sumber
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
sumber
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
sumber
Go berarti, pernyataan SQL apa pun yang ditulis sebelum dan setelah GO sebelumnya, akan masuk ke server SQL untuk diproses.
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.
sumber
Kode mengatakan untuk menjalankan instruksi di atas
GO
penanda. Database default saya adalah myDatabase, jadi alih-alih menggunakanmyDatabase GO
dan membuat kueri saat ini untuk menggunakan herDatabasesumber
Inilah keajaiban GO.
SYNTAX: Go INT
(BatchNumber)
BatchNumber: Tidak ada waktu terjadi
Terlihat sederhana, Ini mungkin mengarahkan Anda ke Spaghetti jika Anda kode lebih dalam.
sumber