SQL Server Management Studio, sağ "Komut Dosyası" menüsünü kullanarak bir sorgu oluşturduğumda her zaman bir GO komutu ekler. Neden? GO aslında ne yapıyor?
SQL Server Management Studio, sağ "Komut Dosyası" menüsünü kullanarak bir sorgu oluşturduğumda her zaman bir GO komutu ekler. Neden? GO aslında ne yapıyor?
Yanıtlar:
Bu bir toplu iş sonlandırıcıdır, ancak istediğiniz gibi değiştirebilirsiniz
GO komutu bir Transact-SQL deyimi değil, SQL Server Management Studio kod düzenleyicisi de dahil olmak üzere birçok MS yardımcı programı tarafından tanınan özel bir komuttur.
GO komutu, SQL komutlarını sunucuya birlikte gönderilen gruplar halinde gruplandırmak için kullanılır. Toplu işe dahil edilen komutlar, yani son GO komutundan veya oturumun başlamasından bu yana verilen komutlar dizisi mantıksal olarak tutarlı olmalıdır. Örneğin, değişkenin kapsamı tanımlandığı toplu işle sınırlı olduğundan, bir toplu işte bir değişkeni tanımlayamaz ve başka bir değişkende kullanamazsınız.
Daha fazla bilgi için, bkz. Http://msdn.microsoft.com/en-us/library/ms188037.aspx .
GO
gerçekten yararlı kılar ?
GO bir SQL anahtar sözcüğü değildir.
Komut dosyasının tamamını toplu olarak bölmek için istemci araçları (SSMS gibi) tarafından kullanılan bir toplu ayırıcıdır
Daha önce birkaç kez cevap verdim ... örnek 1
Sadece mevcut cevaplara eklemek için, görünümler oluştururken bu komutları kullanarak toplu olarak ayırmanız gerekir go
, aksi takdirde hatayı alırsınız 'CREATE VIEW' must be the only statement in the batch
. Yani, örneğin, aşağıdaki sql betiğinigo
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, SQL ifadelerinden önce ve daha önceki herhangi bir GO'dan sonra yazılan her ne olursa olsun, işlem için SQL sunucusuna gidileceği anlamına gelir.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
Yukarıdaki örnekte, GO 1'den önceki ifadeler bir toplu iş içinde sql sever'e ve ardından GO 2'den önceki diğer tüm ifadeler başka bir toplu işteki sql sunucusuna gidecektir. Gördüğümüz gibi ayrı gruplar var.
İşte GO'nun büyüsü.
SELECT 'Go'
Go 10
SYNTAX: GİRİŞ(BatchNumber)
BatchNumber: Kez oluşmadı
Basit görünüyor, eğer daha derine kod yazarsanız sizi Spagetti'ye götürebilir .