SQL Server Management Studioでは、右クリックの[スクリプト]メニューを使用してクエリを作成すると、常にGOコマンドが挿入されます。どうして?GOは実際には何をしますか?
SQL Server Management Studioでは、右クリックの[スクリプト]メニューを使用してクエリを作成すると、常にGOコマンドが挿入されます。どうして?GOは実際には何をしますか?
回答:
バッチターミネーターですが、好きなように変更できます
GOコマンドはTransact-SQLステートメントではなく、SQL Server Management Studioコードエディターを含むいくつかのMSユーティリティによって認識される特別なコマンドです。
GOコマンドは、SQLコマンドをバッチにグループ化して、サーバーに一緒に送信するために使用されます。バッチに含まれるコマンド、つまり最後のGOコマンド以降の一連のコマンドまたはセッションの開始は、論理的に一貫している必要があります。たとえば、変数のスコープはそれが定義されているバッチに限定されているため、あるバッチで変数を定義してから、それを別のバッチで使用することはできません。
詳細については、http://msdn.microsoft.com/en-us/library/ms188037.aspxを参照してください。
GO
実際に役立つバッチ処理はどのような状況で使用できますか?
既存の回答に追加するには、ビューを作成しているときに、これらのコマンドをを使用してバッチに分割する必要go
があります'CREATE VIEW' must be the only statement in the batch
。そうしないと、エラーが発生します。したがって、たとえば、次のSQLスクリプトを実行せずに実行することはできませんgo
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の魔法です。
SELECT 'Go'
Go 10
構文: INTに行く(BatchNumber)
BatchNumber:発生回数
シンプルに見えますが、より深くコーディングすると、スパゲッティにつながる可能性があります。